Ich habe eine Excel-Datei (Excel 2003 / XLS-Format) und möchte sie per E-Mail mit c # senden. Mein Code sendet es erfolgreich, aber wenn ich versuche, die Antwortdatei zu öffnen, scheint es falsch codiert.
Hier ist zum Beispiel der Antwortdateiname:
= _ utf-8_B_RWxzesOhbW9sw6FzXzIwMTJfMTBfMTZf.dat
Und hier ist die Antwortdatei selbst:
=? utf-8? B? VEdWdmJIWmhjMkZ1Wk1Pelh6UXlYekZmPz0NCiA9P3V0Zi04P0I / VGtW? = \ \ =? utf-8? B? TlgwZFRXaTU0YkhNPT89?="Content-Transfer-Encoding: base64 Content-Disposition: Anhang
0M8R4KGxGUEAAAAAAAAAAAAAAAAAAAPgADAP7 / CQAGAAAAAAAAAAAAAAAAAA AQAAAAAAAAAEAAAIwAAAEAAAAD + //// AAAAAAAAAAD ////////////////////// /////////////////////////////////////////////////// ////////////// //////////////////////////////// ....
Hier ist mein Code-Fragment:
%Vor%Wie kann ich den Typ der Anlagecodierung festlegen und welche Codierung sollte ich für Excel-Dateien verwenden?
Bitte helfen Sie mir, dieses Problem zu lösen. Vielen Dank im Voraus.
Sie machen es zu komplex, wie @Magnus zeigt, new Attachment()
kann FileStream
s verarbeiten, also übergeben Sie einfach einen neuen Filestream an den Konstruktor.
Ein Wort der Warnung aber, Art ist Off-Thema, Sie können eine Mail nicht so oft senden, da der Stream nicht immer richtig selbst zurückgesetzt wird.
Wenn Sie Excel aus einer DataTable generieren und per E-Mail senden möchten, können Sie die Excel-Datei wie folgt anhängen:
%Vor%Es hat bei mir zumindest mit .NET Framework 4 und Excel 2016 funktioniert.
Grüße.
Ein E-Mail-Anlagenname, der Nicht-ASCII-Zeichen enthält und länger als 41 UTF-8-codierte Bytes ist, wird vor der Übertragung in einer für das .NET Framework 4 kompilierten Anwendung zweimal codiert. Dieses Problem tritt aufgrund eines Problems auf in .NET Framework 4. Die SMTP-Codierungen wurden so umgeschrieben, dass sie die korrekte Faltung gemäß den RFC-Standards für Zeilenlängenbeschränkungen enthalten. Dieses Verhalten fügt zusätzliche Wagenrücklauf Zeilenvorschub (CRLF) Zeichen ein, wenn die Namenszeichenfolge zu lang ist. Diese zusätzlichen Steuerzeichen bewirken, dass der Name des Anhangs erneut codiert wird. Mehr finden Sie hier Ссылка
Tags und Links c# excel email attachment