2011-07-24 26 views
22

Ho utilizzato mutt per inviare e-mail dall'interno di un'altra applicazione & funziona correttamente. Devo inviare file HTML e attualmente devo inviare come allegati. Quindi io usoInvia pagina HTML Come email utilizzando "mutt"

mutt -s "hi" -a attach.html [email protected] < /dev/null 

Ma se cerco di inviare il file html come il corpo come segue

mutt -e content_type=text/html Email address -s "subject" < test.html 

allora invece di file html ottengo il testo sorgente del file HTML.

Esiste un modo per rendere il corpo del messaggio come html anziché testo normale ???

risposta

41

Quando provo il comando, mutt mi sta dicendo che content_type=text/html è un comando sconosciuto. Quindi, è necessario utilizzare il comando "set" per fare questo lavoro:

mutt -e "set content_type=text/html" Email address -s "subject" < test.html 

che ha lavorato nel mio test.

+0

è tornare: errore nella riga di comando "content_type": comando sconosciuto e io ottenere il codice sorgente invece di corpo html ?? – eldorado0o

+1

@eldorado quale versione di mutt stai usando? apparentemente la variabile "content_type" non è disponibile nella versione '1.4.x' o prima. – vstm

+0

Bene, 1.5.21 è il più recente (e quello che ho usato per testare il comando). Ma secondo la [mutt webpage] (http://www.mutt.org/) è ancora una versione di sviluppo. Se puoi conviverci, va bene, altrimenti ci sono altri modi per inviare messaggi HTML. – vstm

0

Se si guarda alla fonte di una e-mail HTML, vedrete qualcosa di simile minima:

Subject: test html mail 
From: [email protected] 
To: [email protected] 
Content-Type: multipart/alternative; boundary=bcaec520ea5d6918e204a8cea3b4 

--bcaec520ea5d6918e204a8cea3b4 
Content-Type: text/plain; charset=ISO-8859-1 

*hi!* 

--bcaec520ea5d6918e204a8cea3b4 
Content-Type: text/html; charset=ISO-8859-1 
Content-Transfer-Encoding: quoted-printable 

<p><b>hi!</b></p> 

--bcaec520ea5d6918e204a8cea3b4-- 

Quindi, è necessario creare un "Content-Type:" intestazione, e aggiungere i confini sopra la versione solo testo e sopra e sotto la versione HTML.

Data la quantità di lavoro manuale richiesto, si potrebbe anche consegnare il messaggio a sendmail anziché a mutt.

+0

Mutt non consente di inserire un'intestazione Content-Type. L'unico modo è attraverso la riga di comando. – emisilva

5

la mia versione mutt è 1.4.xe non posso anche impostare content_type = text/html, è riportata come variabile sconosciuta.

e ho controllato il mutt doc, il content_type è supportato solo dalla versione 1.5.x, come ad esempio l'ultima versione 1.5.21.

ovviamente, la posta html non era supportata dalla versione 1.4.x.

6

Ho provato con mutt 1.6d e quell'opzione -e "set content_type = text/html" non funziona per me. Dopo la ricerca in giro ho trovato sotto la linea di comando che funziona per me:

mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html 

riferimento qui

LinuxQuestions

+1

Questo, su mutt 1.4 invierà due intestazioni di tipo contenuto, una per testo normale, altra per html. ciò che il client mostrerà è fino a quel momento ... gmail mostrerà il testo in chiaro, quindi fai attenzione – higuita

+0

Solo per la cronaca, questo funziona anche per la versione 1.5.20. – gacanepa

1

Io uso Mutt 1.5.23 per inviare una e-mail HTML con immagine incorporata, e questo funziona per me . mutt -e "set content_type=text/html" Email -s "subject" -a pic.png < test.html

file di test.html:

<html> 
 

 
<head></head> 
 

 
<body> 
 
    <img src="cid:pic.png" " /> 
 
</body> 
 
</html>