Envoyer un e-mail à l'aide de 'sendmail' avec uuencode, et d'avoir un sujet alongwith
J'essaie d'envoyer un mail avec pièce jointe à l'aide de sendmail. Le problème est que je n'arrive pas à envoyer une ligne d'objet avec cette.
La ligne de commande suivante feux de deux mails au lieu d'un seul avec le "Subject : Report
", et l'autre avec la pièce jointe:
/usr/bin/gmime-uuencode "/tmp/url_by_ip.txt" "Report.txt" | echo "Subject: Report" | /usr/sbin/sendmail <sender> <receiver>
OriginalL'auteur bilkulbekar | 2011-11-09
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez utiliser d'autres commandes, je vous suggère de
mutt
qui peut gérer les pièces jointes assez facilement:Si vous êtes coincé avec
/usr/sbin/sendmail
alors vous avez beaucoup plus à faire.sendmail
a pas de notion de pièces jointes et traite le contenu de l'email comme un plat de texte US-ASCII (voir cette réponse pour plus de détails).Pour envoyer attachents avec
sendmail
vous devez formater votre mail contenu d'un message MIME. Pour quelques exemples, voir ce fil de discussion du forum sur unix.com.Pour vous obtenir sur votre chemin, voici un rapide non testé exemple d'utilisation de bash. Par souci de concision, j'ai codé en dur les variables, mais vous pouvez facilement convertir l'exemple d'un script ou d'une fonction qui prend pertinentes vars arguments.
Bien sûr, si vous êtes heureux d'utiliser un niveau plus élevé langage de script (Python, Ruby, Perl, ...) alors il y aura des modules existants qui va déjà faire le gros du travail pour vous.
p.s. Il y a aussi le mpack utilitaire qui fait le MIME conversion pour vous, mais autant que je sache, il n'est pas fourni par défaut sur la plupart des *nix boîtes.
mutt -s "your subject" -a file_to_attach -- [email protected] < /tmp/mail_content
La base de script fonctionne très bien pour moi, et à travers un peu de la modularisation de l'aide de fonctions et il est même élégant. Je vous recommande d'utiliser dans vos scripts que l'installation de mutt.
OriginalL'auteur Shawn Chin
Créer un fichier avec votre en-tête de courrier comme par exemple mail.txt:
Ici le script pour envoyer l'e-mail:
OriginalL'auteur user1025247
Essayez ceci:
mail -s 'Report' [email protected] < tmp/url_by_ip.txt
Pourquoi? Je pensais que les deux d'entre eux n'ont pas trop de différences. CMIIW.
OriginalL'auteur Kristiono Setyadi
Peut-être vous voulez un peu d'utilitaires pour envoyer MIME mail? Il est le vmime de la bibliothèque C++ , de nombreux langages de script (Python, Ruby, Perl, Ocaml, ...) sont forfaits pour le MIME. Il existe également des commandes utilisables par les scripts shell, par exemple, mpack et beaucoup d'autres.
OriginalL'auteur Basile Starynkevitch