11

I've tried emailing a normal web page using something like:

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

However, the recipient sees the raw HTML tags in the email and none of my careful formatting. Am using RedHat Linux.

Umber Ferrule
  • 481
  • 2
  • 6
  • 12

6 Answers6

10

You need to tell the MUA that the content contains HTML. Traditionally this is done using MIME. Try adding the following header lines to your message:

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

You may need to add a Content-Transfer-Encoding header as well. The Wikipedia page on MIME has more details, including links to relevant RFCs.

Update: This worked fine when piped into 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>
Gerald Combs
  • 6,331
  • 23
  • 35
  • If I have content type `application/xhtml+xml` it comes as an attachment. Do You think it can be fixed? – Adobe Mar 10 '13 at 21:12
  • Another question: if I have inline images in html file -- how do I keep them with this method (`sendmail -t`)? – Adobe Mar 10 '13 at 21:19
  • As to inline images: I [found a solution](http://stackoverflow.com/a/4313697/788700) -- but gmail won't load the images (yahoo do). – Adobe Mar 11 '13 at 10:20
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
user9517
  • 114,104
  • 20
  • 206
  • 289
rgareca
  • 21
  • 1
1

it is not possible with mail afaik. But here is a short how-to with sendmail.

Christian
  • 4,645
  • 2
  • 23
  • 27
1

Sure it's possible with mail:

mail -a 'Content-type: text/html; charset="us-ascii"' foo@bar.com < /file.html
j0k
  • 401
  • 9
  • 16
user55079
  • 11
  • 1
  • I get an error : `Content-type: text/html; charset="us-ascii": No such file or directory.` From mail --help, I get that the -a option is for passing FILE. – Prabhat Kumar Singh Mar 30 '18 at 09:40
0

Email messages, like web pages, have their content type specified in the headers. 'mail' seems to predate this and doesn't send any, and so all MUAs fall back to displaying the message as text/plain.

If you want to specify all headers manually, call sendmail recipient@example.com and pass everything to it.

<subjective> But remember that while HTML emails are disliked by some people (including me), receiving HTML emails without an alternate text/plain part is really annoying. So, unless you're absolutely sure the recipient can see HTML messages fine, it would be better to send a multipart message with a plain-text part as an alternative. </subjective>

user1686
  • 8,717
  • 25
  • 38
  • SMTP (STD 11/RFC 823, 1982) does in fact predate MIME (RFC 2045, 1996) and all of its HTML-enabled goodness. It was formed from buffalo hides at the dawn of the Internet. – Gerald Combs Jan 15 '10 at 19:40
  • Gerald: I meant the `mailx` MUA (which for some reason I feel is even older), not email itself. – user1686 Jan 15 '10 at 20:01
  • According to the OS X mail(1) page, "A mail command appeared in Version 1 AT&T UNIX." Ubuntu says it was Version 3 AT&T UNIX. Either way it appears to have shown up around 1971 or 1973. – Gerald Combs Jan 15 '10 at 21:56
0

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

Wagoo
  • 1