Wie kann ich eine Excel-Datei per E-Mail senden?

8

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.

    
ZYD 04.11.2012, 21:39
quelle

5 Antworten

1

Ich habe eine Lösung gefunden:

%Vor%

Basierend auf dieser Quelle: Ссылка

    
ZYD 10.11.2012, 17:40
quelle
5

Sie machen es zu komplex, wie @Magnus zeigt, new Attachment() kann FileStream s verarbeiten, also übergeben Sie einfach einen neuen Filestream an den Konstruktor.

%Vor%

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.

    
flindeberg 05.11.2012 08:19
quelle
1

Ich behebe das gleiche Problem, indem ich MailMessage-Eigenschaften korrigiere:

%Vor%     
Roman 12.02.2013 19:15
quelle
1

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.

    
Víctor Beltrán 27.07.2017 10:43
quelle
0

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 Ссылка

    
Alexander Reva 09.01.2013 19:32
quelle

Tags und Links