我正在尝试将 PDF 附件附加到使用 System.Net.Mail 发送的电子邮件中。附件添加部分如下所示:
using (MemoryStream pdfStream = new MemoryStream())
{
pdfStream.Write(pdfData, 0, pdfData.Length);
Attachment a = new Attachment(pdfStream,
string.Format("Receipt_{0}_{1}.pdf", jobId, DateTime.UtcNow.ToString("yyyyMMddHHmm")));
msg.Attachments.Add(a);
SmtpClient smtp = new SmtpClient(serverName, port);
smtp.Credentials = new NetworkCredential(fromEmailName, fromEmailPassword);
smtp.Send(msg);
}
问题是附件在另一端损坏了。我发现了一些关于这个问题的讨论 here ,但是该页面上提到的解决方案使用了 System.Web.Mail.MailAttachment,它在 .NET 2.0 中已过时。
我曾尝试更改附件类(替换 MailAttachment)中的 TransferEncoding,但没有成功。有人在 .NET 2.0 上解决了这个问题吗?
最佳答案
您是否尝试过在创建附件之前执行 pdfStream.Seek(0,SeekOrigin.Begin)
以将流重置为开头?
关于c# - .NET 中损坏的电子邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307365/