L'envoi simple, fichier joint corporel + message en utilisant Linux Mailx [double]
Question
Cette question a déjà une réponse ici:
Je suis en train d'écrire un shell script
pour envoyer un email en utilisant Linux Mailx
, l'e-mail doit contenir un fichier joint et corps de message .
en cours d'envoi d'un e-mail avec une pièce jointe:
output.txt | mail -s "Daily Monitoring" james@dell.com
Je voudrais ajouter un corps de message. Comment dois-je?
Linux Mailx:
mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
La solution
La manière habituelle est d'utiliser uuencode
pour les pièces jointes et echo
pour le corps:
(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' user@domain.com
Pour Solaris et AIX, vous devrez peut-être mettre l'instruction echo
premier:
(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' user@domain.com
Autres conseils
La meilleure façon est d'utiliser mpack!
mpack -s "Objet" -d "./body.txt" "././image.png" mailadress
mpack - sujet - corps - attachement - mailadress
Essayez ceci cela fonctionne pour moi:
(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com
Sur RHEL Linux, j'ai eu du mal à obtenir mon message dans le corps de l'e-mail au lieu de pièce jointe. En utilisant od -CX, je trouve que le corps de mon e-mail contenait plusieurs / r. J'ai utilisé un script Perl pour dépouiller le / r, et le message a été correctement insérée dans le corps de l'email.
mailx -s "subject text" me@yahoo.com < 'body.txt'
Le fichier texte body.txt contenait le charbon \ r, donc je perl pour dépouiller \ r.
cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'
est success.pl
while (<STDIN>) {
my $currLine = $_;
s?\r??g;
print
}
;
La réponse de Johnsyweb n'a pas fonctionné pour moi, mais cela fonctionne pour moi avec Mutt:
echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com
Vous pouvez essayer ceci:
(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com