Trebuie să atașez un dosar cu mailx, dar în acest moment nu am succes.
Iată codul meu:
subject="Something happened"
to="[email protected]"
body="Attachment Test"
attachment=/path/to/somefile.csv
uuencode $attachment | mailx -s "$subject" "$to" << EOF
The message is ready to be sent with the following file or link attachments:
somefile.csv
Note: To protect against computer viruses, e-mail programs may prevent
sending or receiving certain types of file attachments. Check your
e-mail security settings to determine how attachments are handled.
EOF
Orice feedback ar fi foarte apreciat.
Update I have added the attachment var to avoid having to use the path every time.
Ei bine, aici sunt primele câteva probleme pe care le aveți.
Se pare că presupuneți că un client de mail se va ocupa de atasamentul codificat uuencoded fără anteturi. Asta nu se va întâmpla.
Utilizați codul uuen: dacă este dată o cale, este doar un nume pentru a da fișierul decodat, nu un nume de fișier de intrare. Oferirea fișierului de două ori va atribui același nume fișierului decodificat ca cel citit. Parametrii -m flag-base64 codifică. Dar acest lucru încă nu va oferi anteturi de atașament pentru mailx.
Esti mult mai bine sa obtii o copie a lui mpack, care va face ceea ce vrei.
Dacă trebuie să faceți acest lucru, puteți face ceva de genul:
cat <
Există o mulțime de alte posibilități ... dar acesta are încă documentul de aici ca în exemplul dvs. și a fost ușor de pe partea de sus a capului meu, și nu există nici un dosar temp implicate.
Trebuie să concatenați atât textul mesajului dvs., cât și atașamentul uuencoded:
$ subject="Something happened"
$ to="[email protected]"
$ body="Attachment Test"
$ attachment=/path/to/somefile.csv
$
$ cat >msg.txt < The message is ready to be sent with the following file or link attachments:
>
> somefile.csv
>
> Note: To protect against computer viruses, e-mail programs may prevent
> sending or receiving certain types of file attachments. Check your
> e-mail security settings to determine how attachments are handled.
>
> EOF
$ ( cat msg.txt ; uuencode $attachment somefile.csv) | mailx -s "$subject" "$to"
Există modalități diferite de a furniza textul mesajului, acesta este doar un exemplu care este aproape de întrebarea inițială. Dacă mesajul trebuie reutilizat, este logic să îl stocați într-un fișier și să utilizați acest fișier.