Wie kann ich E-Mails mit der Attachment-XLS-Datei mit einem Shell-Skript als Mimetyp "application / xls" senden, ohne dass die empfangene Datei unlesbar wird

2536
RaymonN
#!/bin/bash  ATTACH1=file.xls<br> SUBJECT="subj"<br> FROM=me@domain.com<br> TO=you@domain.com<br> CC=them@domain.com<br> MIME="Application/vnd.ms-excel" <br> FILE=$ATTACH1<br> boundary="---my-unlikely-text-for-mime-boundary---$$--" <br> (cat <<!<br> From: $FROM<br> To: $TO<br> Subject: $SUBJECT<br> Date: $(date +"%a, %b %e %Y %T %z")<br> Mime-Version: 1.0<br> Content-Type: multipart/mixed; boundary="$boundary"<br>   This email has attached the file<br> --$boundary<br> Content-Type: $MIME;name="$FILE"<br> Content-Disposition: attachment;filename="$FILE"<br>  !<br> uuencode $ $<br> ) | sendmail -v $<br> 

Hallo,

Der obige Code kann die xls-Datei mit einem Shell-Skript senden. Das Problem ist jedoch, dass die empfangene Datei nicht geöffnet sein kann. Auch die Dateigröße der xls wird kleiner. Beispiel: Die Größe der ursprünglichen XLS-Anlage beträgt vor dem Senden 17 KB, aber die empfangene Datei wird nach dem Senden 378 KB groß.

Was kann ich tun, damit die empfangenen xls lesbar werden, wenn sie vom Empfänger geöffnet werden? Was ist falsch oder fehlt im obigen Skript? Bitte helfen !!!!

Und übrigens .. Ich kann MUTT NICHT verwenden

0
Wo legen Sie den Dateiinhalt ab? a CVn vor 8 Jahren 0
du meinst den Code oben? Ich habe es als script1.sh-Datei eingefügt und dann mit ./script1.sh ausgeführt RaymonN vor 8 Jahren 0
Nein, ich meine, wie enthalten die Daten, die an sendmail gesendet werden, den Inhalt der Datei, die Sie an die E-Mail anhängen möchten? a CVn vor 8 Jahren 0
Bitte sehen Sie sich das aktualisierte Skript an. Es sendet jetzt die gleiche Dateigröße, aber jetzt enthält es begin 644 PRB0045758_EDI_UPLOAD_14-01-2016.xls M / #] X; 6P @ = F5R7EY> 5P @: & amp; Z; 6TZ M RaymonN vor 8 Jahren 0
Duplikat von http://stackoverflow.com/q/17359/7552 glenn jackman vor 8 Jahren 0
Nein, es ist nicht doppelt vorhanden RaymonN vor 8 Jahren 0

1 Antwort auf die Frage

0
glenn jackman

Sie müssen die Content-Transfer-Encoding für den MIME-Teil der Anlage angeben. Ich weiß nicht, ob Uuencode ein Standard ist. Base64 ist jedoch.

Sie müssen auch die schließende Begrenzungsmarkierung senden.

Ihre Weiterleitung zu Katze ist falsch.

(cat << ! From: $FROM To: $TO Subject: $SUBJECT Date: $(date +"%a, %b %e %Y %T %z") Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="$boundary"  This email has attached the file  --$boundary Content-Type: text/plain; charset=ISO-8859-1  Please see the attachmed file.  --$boundary Content-Transfer-Encoding: base64 Content-Type: $MIME;name="$ATTACH1" Content-Disposition: attachment;filename="$ATTACH1"  $(base64 "$ATTACH1")  --$boundary-- ! ) | sendmail -v "$TO" 
base64: Befehl nicht gefunden :( RaymonN vor 8 Jahren 0
Versuchen Sie `Content-Transfer-Encoding: uuencode` und verwenden Sie uuencode wie in der Datei. glenn jackman vor 8 Jahren 0
funktioniert immer noch nicht .. Die angehängte Datei kann nicht geöffnet werden RaymonN vor 8 Jahren 0