System.Net.Mail で送信される電子メールに PDF 添付ファイルを添付しようとしています。添付ファイルを追加する部分は次のようになります。
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);
}
問題は、添付ファイルが相手側で破損することです。この問題に関する議論はこちらで見つかりましたが、そのページに記載されている解決策では、.NET 2.0 で廃止された System.Web.Mail.MailAttachment を使用していました。
Attachment クラス (MailAttachment を置き換える) の TransferEncoding を変更しようとしましたが、うまくいきませんでした。.NET 2.0 でこれを解決した人はいますか?