c# - 将文件附加到 System.Net.Mail 时出错。如何修复此错误?
问题描述
尝试发送带有附件的电子邮件。但是我收到一个错误:
“无法从 'System.Threading.Tasks.Task' 转换为 'System.Net.Mail.Attachment'
我的错误发生在该行 Attachments.Add(GetAttachment(attachmentFileName));
我尝试了各种转换(参见代码),但我不太明白问题出在哪里。我知道解决方案就在我面前,但我没有看到。
public class NonFERosterEmail : BaseNotificationEmail<OfferViewModel>
{
public NonFERosterEmail(OfferViewModel vm, string emailList, string attachmentFileName) : base(vm)
{
To.AddRange(GetTo(emailList));
Body = GetBody();
Subject = GetSubject();
//Attachments.Add(new Attachment(GetAttachment(attachmentFileName)));
Attachments.Add(GetAttachment(attachmentFileName));
From = new MailAddress(ConfigurationManager.AppSettings["RedirectEmailTo"]);
}
//public async Task<List<Attachment>> GetAttachment(string attachmentFileName)
public async Task<Attachment> GetAttachment(string attachmentFileName)
{
//var ret = new List<Attachment>();
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["azureStorageAccount"]);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("attachments");
CloudBlockBlob blob = container.GetBlockBlobReference(attachmentFileName);
var contentType = MimeMapping.GetMimeMapping(attachmentFileName);
Stream target = new MemoryStream();
await blob.DownloadToStreamAsync(target);
target.Position = 0;
//ret.Add(new Attachment(target, attachmentFileName, contentType));
Attachment ret = new Attachment(target, attachmentFileName, contentType);
return ret;
}
//remainder of code left out for brevity
}
我希望GetAttachment
返回一个正确的 Attachment 对象,该对象将被添加到 Mail 对象中并成功发送。
解决方案
要从 a 中获取值Task<T>
,您必须制定方法async
和await
任务。
推荐阅读
- excel - 如何在 Excel 中设置刷新顺序?包含数据库数据和更多层的数据透视表
- python - 用于弹性搜索的 Python API - 每次响应 10000
- ruby-on-rails - 无法在 Rails 5.1 中加载 google-cloud-text_to_speech Gem 的默认凭据
- ios - WKWebView iframe X-Frame-Options 是“拒绝”
- python - pandas:如何查询多级列数据框?
- javascript - 使用 dropzone 上传文件时出现问题
- api - Blogger API 中的 URL 和 customMetaData 选项
- c++ - 调用函数时实际发生的情况
- java - 如何使用 Promeheus 监控集群?
- css-float - 浮动显示出不可预测的行为?隐藏块[浮动块下方]的内容来自它之外?