C# .NET中损坏的电子邮件附件

C# .NET中损坏的电子邮件附件,c#,.net,smtp,C#,.net,Smtp,我正在尝试将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", jobI

我正在尝试将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);
}
问题是附件在另一端损坏。我发现了一些关于这个问题的讨论,但是该页面上提到的解决方案使用了System.Web.Mail.MailAttachment,它在.NET 2.0中已经过时


我曾尝试在Attachment类中更改Transferncode(它取代了MailAttachment),但没有成功。是否有人在.NET 2.0上解决了此问题?

在创建附件以将流重置为开始之前,您是否尝试过执行
pdfStream.Seek(0,SeekOrigin.Begin)
?是否检查以确保PDF文档在pdfData数组中没有损坏?尝试将其写入文件,然后打开它

干杯

凯文

是的,就是这样。我猜整个编码过程都是在转移注意力:)