如何从linux命令行发送邮件,使邮件以HTML形式显示给收件人?


10

我尝试使用类似以下方式通过电子邮件发送普通网页:

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

但是,收件人看到的是电子邮件中的原始HTML标记,而我没有仔细格式化。我正在使用RedHat Linux。

Answers:


10

您需要告诉MUA,内容包含HTML。传统上,这是使用MIME完成的。尝试在邮件中添加以下标题行:

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

您可能还需要添加Content-Transfer-Encoding标头。MIMEWikipedia页面上有更多详细信息,包括指向相关RFC的链接。

更新:此管道时,将工作得很好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>

如果我有内容类型,application/xhtml+xml则作为附件附带。您认为可以解决吗?
Adobe

另一个问题:如果我在html文件中有内嵌图片,如何使用此方法(sendmail -t)保存它们?
Adobe

至于内联图像:我找到了一种解决方案 -但gmail无法加载图像(雅虎可以)。
Adobe

2

Solucion 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

当然可以用邮件:

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

我收到一个错误: Content-type: text/html; charset="us-ascii": No such file or directory. 从邮件--help,我得到-a选项用于传递FILE。
Prabhat Kumar Singh '18

0

电子邮件(如网页)的内容类型在标头中指定。“邮件”似乎早于此,并且不发送任何邮件,因此所有MUA都退回到将消息显示为文本/纯文本。

如果要手动指定所有标题,请调用sendmail recipient@example.com并将所有内容传递给它。

<subjective>但要记住,虽然HTML格式的电子邮件被一些人(包括我),接收HTML格式的电子邮件不喜欢没有替代文本/平坦部分真的很烦。因此,除非您完全确定收件人可以很好地看到HTML消息,否则最好发送包含纯文本部分的多部分消息作为替代。</subjective>


SMTP(STD 11 / RFC 823,1982)实际上早于MIME(RFC 2045,1996)及其所有启用HTML的优点。它是由Internet黎明时由水牛皮制成的。
Gerald Combs 2010年

Gerald:我的意思是mailxMUA(出于某种原因,我觉得它更老了),而不是电子邮件本身。
user1686'1

根据OS X mail(1)页面,“在第1版AT&T UNIX中出现了一个邮件命令。” Ubuntu说它是AT&T UNIX版本3。无论哪种方式,它似乎都出现在1971年或1973
Gerald Combs 2010年

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.