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

标签 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", 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/

相关文章:

c# - 在 foreach 中设置 var 以备后用

c# - 使用 Twitter Bootstrap、C#、asp.net 和 javascript 上传文件

c# - 限制线程池中使用的处理器数量

c# - 从 UDP 连接接收结构化数据

c# - 作为 AD 组发送电子邮件

c# - MailKit smtp.office365.com特殊字符编码问题

c# - 如何在 MonoDevelop/.Net 中自动生成单元测试?

c# - TreeView 节点的图像索引在选择时发生变化

c# - WPF Web 应用程序未显示

ssl - Asp.netSendEmail SMTP 服务器要求安全连接或客户端未通过身份验证