我有一个Azure Timer Trigger功能,它生成一个excel文件,我需要通过电子邮件发送它作为附件。我成功完成了以下操作 -
- 创建文件并将其上传到azure blob中
- 发送没有附件的电子邮件(使用SmtpClient和MailMessage)
如何从Azure Blob获取文件并将其作为附件发送?
附:当我将文件存储在Azure的本地存储功能中时,我能够将其作为附件发送。但是,我想将文件的存储移动到Azure Blob
如何从Azure Blob获取文件并将其作为附件发送?
根据我的理解,您可以将blob下载到函数中的临时本地文件中,如下所示:
// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"path\myfile"))
{
blockBlob.DownloadToStream(fileStream);
}
然后,你可以构建你的Attachment
如下:
System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment("{file-path}");
或者你可以直接将你的blob下载到MemoryStream
中,如下所示:
using (var memoryStream = new MemoryStream())
{
blockBlob2.DownloadToStream(memoryStream);
memoryStream.Position = 0;
System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(memoryStream , "{contentType}");
}
您可以关注Download blobs的详细信息。