7

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 でこれを解決した人はいますか?

4

2 に答える 2

12

pdfStream.Seek(0,SeekOrigin.Begin)添付ファイルを作成する前に、ストリームを最初にリセットすることを試みましたか?

于 2008-11-21T00:27:15.130 に答える
1

PDF ドキュメントが pdfData 配列で破損していないことを確認しましたか? それをファイルに書き込んでから開いてみてください。

乾杯
ケブ

于 2008-11-21T03:24:39.097 に答える