Send Html page As Email using "mutt"
Asked Answered
A

5

40

I have been using mutt to send emails from inside another application & it works fine. I have to send html files and currently I have to send them as attachments. So I use

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

But if I try to send the html file as the body as follows

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

then instead of the html file i get the source text of the html file.

Is there any way that I can make the body of the message as html instead of plain text???

Anticline answered 24/7, 2011 at 8:36 Comment(0)
D
64

When I try your command, mutt is telling me that content_type=text/html is an unknown command. So you have to use the "set" command to make this work:

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

That worked in my tests.

Diminish answered 24/7, 2011 at 8:48 Comment(5)
it return : error in command line "content_type" : unknown command and i get the source code insted of html body ??Anticline
@eldorado what version of mutt are you using? apparently the "content_type"-variable is not available in the version 1.4.x or before.Diminish
Well, 1.5.21 is the most recent one (and the one i've used for testing the command). But according to the mutt webpage it's still a development-version. If you can live with it that's okay, otherwise there are other ways to send HTML-mails.Diminish
could you please Give me The other Way TO send Html-mails ?Anticline
@eldorado see sending HTML mail using a shell script. But I have read today that sending HTML-Mails only (that means without multi-part with a text/plain alternative) is increasing the possibility of getting the mail considered as SPAM (I don't have the link so "citation needed").Diminish
S
8

I tried with mutt 1.6d and that option -e "set content_type=text/html" doesn't work for me. After search around i found below command line works for me:

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

Reference here

LinuxQuestions

Spam answered 7/9, 2012 at 3:44 Comment(2)
This one, on mutt 1.4 will send two headers content-type, one for plain text, other for html. what the client will show up is up to then... gmail will show the plain text, so be carefulMorningglory
Just for the record, this also works for version 1.5.20.Andreasandree
W
6

my mutt version is 1.4.x, and I also cannot set content_type=text/html, it is reported as unknown variable.

and I checked the mutt doc, the content_type is only supported by version 1.5.x, such as the latest version 1.5.21.

obviously, html mail was not supported by version 1.4.x.

Woodworm answered 8/2, 2012 at 2:35 Comment(0)
C
5

I use Mutt 1.5.23 to send an html email with embedded image, and this works for me. mutt -e "set content_type=text/html" Email -s "subject" -a pic.png < test.html

file test.html:

<html>

<head></head>

<body>
  <img src="cid:pic.png"/>
</body>
</html>
Carmichael answered 26/8, 2015 at 12:44 Comment(0)
C
0

If you look at the source of an HTML email, you'll see at minimum something like:

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

So, you have to create a "Content-Type:" header, and add the boundaries above the text-only version, and above and below the HTML version.

Given the amount of hand-crafting required, you might as well hand the message over to sendmail instead of mutt.

Char answered 24/7, 2011 at 11:17 Comment(2)
Mutt does not allow you to insert a Content-Type header. The only way is through the command line.Collected
@Collected so it does allow you to insert a content-type header, with -e.Coccidioidomycosis

© 2022 - 2024 — McMap. All rights reserved.