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:)

19
demandé sur omg 2009-08-26 12:09:34

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
34
répondu Steven L 2013-04-08 13:09:09

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.

17
répondu Space 2012-12-26 12:58:28

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.

4
répondu DavidMWilliams 2009-08-26 08:13:12

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

4
répondu Nicholas Anderson 2014-09-18 06:17:20

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.

2
répondu Mike S 2014-11-18 16:26:14

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 
2
répondu Abdel 2018-03-08 12:01:35

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
1
répondu PhilippeS 2015-12-04 10:23:37

- 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
1
répondu Virole Bridée 2017-08-18 14:00:17