Jak mogę wysłać wiadomość e-mail z plikiem xls załącznika za pomocą skryptu powłoki jako mimetype application / xls bez powodowania, że ​​otrzymany plik stanie się nieczytelny


0
#!/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 ${ATTACH1} ${ATTACH1}<br>
) | sendmail -v ${TO}<br>

Cześć,

Powyższy kod może wysłać plik xls za pomocą skryptu powłoki. Problem w tym, że otrzymany plik nie może być otwarty. Ponadto rozmiar pliku xls staje się mniejszy. Przykład: oryginalny rozmiar załącznika xls wynosi 17 kb przed wysłaniem, ale otrzymany plik ma rozmiar 378b po wysłaniu.

Co mogę zrobić, aby odebrane xls stały się czytelne, gdy zostały otwarte przez odbiornik? Co jest źle lub czego brakuje w powyższym skrypcie? Proszę pomóż!!!!

A tak przy okazji ... NIE MOGĘ UŻYWAĆ MUTT


Gdzie umieszczasz zawartość pliku?
CVn

masz na myśli powyższy kod? Umieszczam go jako plik script1.sh, a następnie wykonuję go ./script1.sh
RaymonN

Nie, chodzi mi o to, w jaki sposób dane, które są przesyłane potokowo, sendmailzawierają zawartość pliku, który chcesz dołączyć do wiadomości e-mail?
CVn

Zobacz zaktualizowany skrypt. Teraz wysyła ten sam rozmiar pliku, ale teraz zawiera początek 644 PRB0045758_EDI_UPLOAD_14-01-2016.xls M / #] X; 6P @ = F5R <VEO; CTB, 2XP (C \ ^ "CQS < SI7; W) K8F] O: R! X; 6QN <SIS <STB M = 7) NG-C: & 5M87, M; 6EC <F] S; V9T + 6-O; 3IO9F9I8V4Z <W! R96% D <VAE970B M / @ H \ <W, Z4W1Y; & 5S / @ H \ <W, Z4W1Y; & 4 @ <W, Z240] (D] R86-L941A = & 4B / @ H \ M <W, Z3G5M8F5R1F] R; 6% T ('-S.D9O <FUA = # TB9 & 0O; 6TO> 7EY> 5P @: & @ Z; 6TZ M <W, B + SX * / "] S <SI3 =„ EL93X * / "] S <SI3 =' EL97, ^ "CQS <SI7; W) K <VAE970 @
RaymonN

Odpowiedzi:


0

Musisz określić kodowanie transferu treści dla części MIME z załącznikiem. Nie wiem, czy uuencode jest standardowy. Base64 jest jednak.

Musisz także wysłać znacznik granicy zamknięcia.

Twoje przekierowanie na kota jest nieprawidłowe.

(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: nie znaleziono polecenia :(
RaymonN

Spróbuj Content-Transfer-Encoding: uuencodeużyć uuencode na pliku, tak jak robiłeś.
glenn jackman

nadal nie działa ... załączony plik po otrzymaniu nie może być otwarty
RaymonN
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.