在 Episerver 11 中使用 MimeKit 包发送电子邮件时,.xls 文件和 .doc 文件的电子邮件附件已损坏,无法打开。
我在本地调试电子邮件附件代码,但发送带有附件的 SMTP 电子邮件时没有异常或错误。我收到了电子邮件,但使用 MimeKit Nuget 包打开 .xls 和 .doc 文件时,“文件已损坏且无法打开” 电子邮件附件出现错误。 代码: var mailMessage = new MimeMessage(); foreach (var Attachment in Attachments) //来自 Episerver 数据库的附件,包含文件名和字节 { builder.Attachments.Add(attachment.FileName,attachment.Content); } mailMessage.Body = builder.ToMessageBody(); mailMessage.WriteTo(messageStream); 等待 _smtpClient.SendAsync(mailMessage);
以下是针对不清楚的问题的一些一般建议(无代码):
1- 确保为 .xls 和 .doc 文件正确设置 文件编码 和 MIME 类型。
2- 检查文件是否正确附加,在电子邮件发送过程中没有任何数据损坏。
3- 验证文件扩展名是否与实际文件类型匹配,以防止出现任何不匹配问题。
4- 查看电子邮件发送代码,确认附件以正确的格式添加,并且 MIME 标头配置正确。 (MIMEKit)
5- 考虑将附件编码为Base64,以确保传输过程中的数据完整性。