Comment envoyer un email html avec la commande bash "sendmail"?
Quelqu'un a une démo disponible?
Sendmail est dit non évolutif, mais il est libre, donc j'ai décidé de l'utiliser en premier pour le moment:)
8 réponses
Je n'ai pu obtenir aucune des solutions affichées pour fonctionner, mais j'ai finalement trouvé ceci ailleurs, et cela fonctionne bien:
(
echo "From: ${from}";
echo "To: ${to}";
echo "Subject: ${subject}";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "${message}";
) | sendmail -t
si je vous comprends bien, vous voulez envoyer du courrier au format HTML en utilisant la commande linux sendmail. Ce code fonctionne sur Unix. S'il vous plaît donner un essai.
echo "From: me@xyz.com
To: them@xyz.com
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary='PAA08673.1018277622/server.xyz.com'
Subject: Test HTML e-mail.
This is a MIME-encapsulated message
--PAA08673.1018277622/server.xyz.com
Content-Type: text/html
<html>
<head>
<title>HTML E-mail</title>
</head>
<body>
<a href='http://www.google.com'>Click Here</a>
</body>
</html>
--PAA08673.1018277622/server.xyz.com
" | sendmail -t
pour les détails de la configuration de sendmail, reportez-vous à ce lien . Espérons que cette aide.
cette page devrait vous aider - http://www.zedwood.com/article/103/bash-send-mail-with-an-attachment
il inclut un script pour envoyer un e-mail avec une pièce jointe MIME, c'est à dire avec une page HTML et des images incluses.
je comprends que vous ayez demandé sendmail mais pourquoi ne pas utiliser la valeur par défaut mail ? Il peut facilement envoyer des e-mails html.
: RHEL 5.10/6.x & CentOS 5.8
exemple:
cat ~/campaigns/release-status.html | mail -s "$(echo -e "Release Status [Green]\nContent-Type: text/html")" to.address@company.com -v
partage de code: http://www.codeshare.io/8udx5
pour donner suite à la réponse précédente en utilisant mail :
souvent, la sortie html d'une personne est interprétée par le client mailer, qui ne peut pas formater les choses en utilisant une police de largeur fixe. Ainsi, votre alignement ASCII joliment formaté est tout gâché. Pour envoyer la largeur fixe démodée de la façon que le Dieu a voulu, essayez ceci:
{ echo -e "<pre>"
echo "Descriptive text here."
shell_command_1_here
another_shell_command
cat <<EOF
This is the ending text.
</pre><br>
</div>
EOF
} | mail -s "$(echo -e 'Your subject.\nContent-Type: text/html')" to.address@company.com
Vous n'avez pas nécessairement besoin d'un "texte Descriptif ici."la ligne, mais j'ai trouvé que parfois, la première ligne peut, en fonction de son contenu, amener le programme à interpréter le reste du fichier d'une manière que vous n'aviez pas prévue. Essayez le script avec le texte descriptif simple d'abord, avant de régler la sortie de la façon que vous voulez.
solution trouvée dans http://senthilkl.blogspot.lu/2012/11/how-to-send-html-emails-using-sendemail.html
sendEmail -f "oracle@server" -t "name@domain.com" -u "Alert: Backup complete" -o message-content-type=html -o message-file=$LOG_FILE -a $LOG_FILE_ATTACH
c'est plus simple à utiliser, l'option-a :
cat ~/campaigns/release-status.html | mail -s "Release Status [Green]" -a "Content-Type: text/html" to.address@company.com
- une option?
cf. page de manuel:
-a file
Attach the given file to the message.
résultat:
Content-Type: text/html: No such file or directory