7 Stimmen

beschädigte E-Mail-Anhänge in .NET

Ich versuche, einen PDF-Anhang an eine E-Mail anzuhängen, die mit System.Net.Mail gesendet wird. Der Teil zum Hinzufügen des Anhangs sieht wie folgt aus:

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);
}

Das Problem ist, dass der Anhang auf der anderen Seite beschädigt wird. Ich habe einige Diskussionen über dieses Problem gefunden ici Die auf dieser Seite genannte Lösung verwendet jedoch System.Web.Mail.MailAttachment, das in .NET 2.0 veraltet ist.

Ich habe versucht, die TransferEncoding in der Attachment-Klasse (die MailAttachment ersetzt) zu ändern, hatte aber kein Glück. Hat jemand dieses Problem mit .NET 2.0 gelöst?

12voto

tvanfosson Punkte 506878

Haben Sie versucht, eine pdfStream.Seek(0,SeekOrigin.Begin) vor der Erstellung des Anhangs, um den Stream an den Anfang zurückzusetzen?

2voto

Kev Punkte 115293

Haben Sie überprüft, dass das PDF-Dokument im pdfData-Array nicht bereits beschädigt ist? Versuchen Sie, das Dokument in eine Datei zu schreiben und sie dann zu öffnen.

Prost
Kev

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X