7

我正在尝试将 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 类中的 TransferEncoding(替换 MailAttachment),但没有运气。有没有人在 .NET 2.0 上解决了这个问题?

4

2 回答 2

12

您是否尝试过pdfStream.Seek(0,SeekOrigin.Begin)在创建附件之前将流重置为开头?

于 2008-11-21T00:27:15.130 回答
1

您是否检查以确保 pdfData 数组中的 PDF 文档尚未损坏?尝试将其写入文件然后打开它。

干杯
凯夫

于 2008-11-21T03:24:39.097 回答