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" [email protected] < 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.

Virole d'ombre
la source

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: [email protected]
To: [email protected]
Subject: MIME Test
Mime-Version: 1.0
Content-Type: text/html

<html>
<body>
This is a test.
</body>
</html>
Gerald Combs
la source
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' [email protected]  -- -f [email protected]  < /tmp/eximrep.html
rgareca
la source
1

ce n'est pas possible avec mailafaik. Mais voici un petit tutoriel avec sendmail.

Christian
la source
1

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

mail -a 'Content-type: text/html; charset="us-ascii"' [email protected] < /file.html
user55079
la source
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 [email protected]et 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>

user1686
la source
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

Wagoo
la source