SendGrid:如何从Azure blob存储中附加文件?

HSB*_*ina 2 stream azure email-attachments azure-storage sendgrid

我在Windows Azure blob存储中有blob,我想附加到SendGrid发送的电子邮件中.我想指定附件的文件名(真正的文件名只是mumbo jumbo),afaik强迫我将附件添加为流.

我的代码看起来像这样:

var msg = SendGrid.GetInstance();
// Code for adding sender, recipient etc...
var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["storage"].ConnectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(typeName);
var blob = container.GetBlockBlobReference("somefile.png");
var ms = new MemoryStream();
blob.DownloadToStream(ms);
msg.AddAttachment(ms, "originalfilename.png");
Run Code Online (Sandbox Code Playgroud)

文件从存储器读取到内存流并添加附件似乎工作正常但在收到电子邮件后附加的文件是0字节.

先感谢您.

dri*_*nte 7

这可能已经解决了,但您需要确保使用Seek将流回放到开头.示例代码如下.

stream.Seek(0, SeekOrigin.Begin);
sendGrid.AddAttachment(stream, "name");
Run Code Online (Sandbox Code Playgroud)