66 votes

Comment envoyer un courrier HTML en ligne de commande linux

J'ai besoin d'envoyer un courrier au format HTML. Je n'ai que linux comand line et la commande "mail".

Actuellement ont utilisé:

 echo "To: address@example.com" > /var/www/report.csv
echo "Subject: Subject" >> /var/www/report.csv
echo "Content-Type: text/html; charset=\"us-ascii\"" >> /var/www/report.csv

echo "<html>" >> /var/www/report.csv
mysql -u ***** -p***** -H -e "select * from users LIMIT 20" dev >> /var/www/report.csv
echo "</html>" >> /var/www/report.csv

mail -s "Built notification" address@example.com < /var/www/report.csv
 

Mais dans mon agent de messagerie, je ne reçois que du texte en clair.

texte alternatif

62voto

Dude Points 239

Cela a fonctionné pour moi:

 echo "<b>HTML Message goes here</b>" | mail -s "$(echo -e "This is the subject\nContent-Type: text/html")" foo@example.com
 

45voto

Ole Tange Points 4907

Ma version de mail n'a pas --append et elle est trop intelligente pour le echo -e \n --trick (elle remplace simplement \ n par un espace). Cependant, il a -a :

 mail -a "Content-type: text/html" -s "Built notification" address@example.com < /var/www/report.html
 

28voto

Eric Leschinski Points 14289

Rendre un fichier appelé tmp.html et de mettre la ligne suivante:

<b>my bold message</b>

Puis collez-le dans la ligne de commande: (avec la parenthèse et tout et tout).

(
  echo To: youremail@blah.com
  echo From: el@defiant.com
  echo "Content-Type: text/html; "
  echo Subject: a logfile
  echo
  cat tmp.html
) | sendmail -t

Le courrier sera distribué. Et le message est apparu en gras à la place de l' <b> tags.

Source:
Comment envoyer un e-mail en html avec la commande bash "sendmail"?

6voto

Marc B Points 195501

Le problème est que lors de la redirection d'un fichier dans "mail" comme ça, il est utilisé pour le corps du message seulement. Tous les en-têtes de vous intégrer dans le fichier dans le corps à la place.

Essayez:

mail --append="Content-type: text/html" -s "Built notification" address@example.com < /var/www/report.csv

--append permet d'ajouter de l'arbitraire des en-têtes du mail, qui est l'endroit où vous devez spécifier le content-type et content-disposition. Il n'y a pas besoin d'incorporer l' To et Subject - têtes dans votre fichier, ou de les définir avec --append, puisque vous êtes implicitement paramètre sur la ligne de commande déjà (-s est le sujet, et address@example.com devient automatiquement l' To).

1voto

ghostdog74 Points 86060

vous devriez utiliser la redirection de mode "Ajouter" >> au lieu de >

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X