Comment envoyer du courrier à partir de la ligne de commande linux pour qu'il apparaisse au format HTML au destinataire?


10

J'ai essayé d'envoyer un courriel à une page Web normale en utilisant quelque chose comme:

mail -s "Test Email" blah@blah.com < webpage.htm

Cependant, le destinataire voit les balises HTML brutes dans l'e-mail et aucune de mes mises en forme soigneuses. J'utilise RedHat Linux.

Réponses:


10

Vous devez indiquer au MUA que le contenu contient du HTML. Traditionnellement, cela se fait à l'aide de MIME. Essayez d'ajouter les lignes d'en-tête suivantes à votre message:

Mime-Version: 1.0
Content-Type: text/html

Vous devrez peut-être également ajouter un en-tête Content-Transfer-Encoding. La page Wikipedia sur MIME contient plus de détails, y compris des liens vers les RFC pertinents.

Mise à jour: cela a bien fonctionné lorsqu'il est canalisé dans sendmail -t:

From: me@example.org
To: me@gmail.com
Subject: MIME Test
Mime-Version: 1.0
Content-Type: text/html

<html>
<body>
This is a test.
</body>
</html>

Si j'ai un type de contenu, application/xhtml+xmlil est fourni en pièce jointe. Pensez-vous que cela peut être corrigé?
Adobe

Une autre question: si j'ai des images en ligne dans un fichier html - comment les conserver avec cette méthode ( sendmail -t)?
Adobe

Quant aux images en ligne: j'ai trouvé une solution - mais gmail ne chargera pas les images (yahoo do).
Adobe

2

Solucion a envio html

mail -a 'MIME-Version: 1.0' -a 'Content-Type: text/html; charset=iso-8859-1' -a 'X-AUTOR: Ing. Gareca' -s 'MTA STATUS: mail queue' rgareca@hotmail.com  -- -f seincotel@seincotel.com  < /tmp/eximrep.html


1

Bien sûr, c'est possible avec le courrier:

mail -a 'Content-type: text/html; charset="us-ascii"' foo@bar.com < /file.html

J'obtiens une erreur: Content-type: text/html; charset="us-ascii": No such file or directory. De mail --help, je reçois que l'option -a est pour passer FILE.
Prabhat Kumar Singh

0

Les e-mails, comme les pages Web, ont leur type de contenu spécifié dans les en-têtes. 'mail' semble précéder cela et n'en envoie aucun, et donc tous les MUA reviennent à afficher le message en texte / clair.

Si vous souhaitez spécifier tous les en-têtes manuellement, appelez sendmail recipient@example.comet transmettez tout.

<subjective>Mais rappelez-vous que même si certaines personnes (dont moi) n'aiment pas les e-mails HTML, recevoir des e-mails HTML sans texte alternatif / partie simple est vraiment ennuyeux . Donc, à moins que vous ne soyez absolument sûr que le destinataire peut voir correctement les messages HTML, il serait préférable d'envoyer un message en plusieurs parties avec une partie en texte brut comme alternative.</subjective>


SMTP (STD 11 / RFC 823, 1982) est en fait antérieur à MIME (RFC 2045, 1996) et à toutes ses qualités HTML. Il a été formé à partir de peaux de buffle à l'aube d'Internet.
Gerald Combs du

Gerald: Je voulais dire le mailxMUA (qui, pour une raison quelconque, je pense qu'il est encore plus ancien), pas le courrier électronique lui-même.
user1686

Selon la page de messagerie d'OS X (1), «Une commande de messagerie est apparue dans la version 1 d'AT & T UNIX». Ubuntu dit que c'était la version 3 AT&T UNIX. Quoi qu'il en soit, il semble avoir apparu vers 1971 ou 1973.
Gerald Combs

0

uuencode webpage.html webpage.html | mail -s "subject" email@address

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.