c# - 从邮件中打开时,从流中添加的附件不可读
问题描述
在 blob 中,我生成了可以阅读的 xlsx 报告。我想通过邮件发送这份报告。为此,我正在使用 SendGrid。我将此报告作为来自 blob 的流,创建Attachment
并尝试通过邮件发送。结果我收到带有附件的邮件,但我无法阅读。
private async Task SendReportAsync(string fileName)
{
var reportStream = await blobHelper.GetBlobStreamAsync(fileName).ConfigureAwait(false);
var message = new Message
{
HtmlBody = "Please see file attached", Subject = "Test Report with Attachment", TextBody = "Please see file attached"
};
var sender = new MessageAddress
{
Address = "noreply@mail.com", Name = "test"
};
var attachment = new Attachment(reportStream, fileName);
await myMessageService.SendAsync(message, sender, new MessageAddress { Address = "mail.receiver@mail.com" }, new[] { attachment });
}
我的消息服务:
public async Task SendAsync(
Message message,
MessageAddress sender,
MessageAddress recipient,
NameValueCollection headers = null,
MessageAddress bccRecipient = null,
IEnumerable<Attachment> attachments = null)
{
var mailMsg = this.PrepareMailMessage(
message,
sender,
recipient,
headers,
bccRecipient,
out SmtpClient smtpClient,
attachments);
await smtpClient.SendMailAsync(mailMsg).ConfigureAwait(false);
}
private MailMessage PrepareMailMessage(
IMessage message,
IMessageAddress sender,
IMessageAddress recipient,
NameValueCollection headers,
IMessageAddress bccRecipient,
out SmtpClient smtpClient,
IEnumerable<Attachment> attachments = null)
{
var mailMsg = new MailMessage();
// Assigning all available values to mailMsg
return mailMsg;
}
解决方案
推荐阅读
- python - 验证数字序列是否满足 Python 中的某些条件
- apache-kafka - Kafka enable.auto.commit = true 并使用 commitSync()
- java - 如何从 setMyLocationEnabled(true) 获取当前位置的地址;
- r - 在ggplot中使用过滤器时闪亮的范围滑块错误
- spartacus-storefront - 扩展后端模型 (Data/DTO) 并与 Spartacus 同步
- ios - 如何创建具有可选泛型类型的动态结构
- sql - SQL 开发人员中的一个简单的 Oracle UPDATE 查询花费了太多时间,为什么?
- flutter - TextFormFields 没有获得焦点 - Flutter
- javascript - 一旦 Lottie 动画到达某个帧,如何触发事件?
- c++ - 函数没有得到线程使用的更新队列