使用mailx发送带有HTML正文和附件的电子邮件

时间:2014-03-10 18:13:02

标签: html linux email attachment mailx

我目前正在使用mailx从我的脚本发送html格式化邮件:

cat body.html | /usr/bin/mailx -a "From: Me <me@domain>" -a "Content-type: text/html" -s "My subject" $RECIPIENTS

现在我想添加一个附件(png图像),但我无法弄清楚如何。 我想尝试使用mailx,然后再转向mutt或其他东西。 非常感谢

2 个答案:

答案 0 :(得分:1)

如果您的要求很简单,可以使用裸Sendmail。这不是我特别推荐的,但是因为你想避免mutt ......

# Now that we actually concatenate two files (well, stdin and a file),
# we are no longer eligible for a Useless Use of Cat Award
( cat - body.html <<HERE
Subject: My subject
Mime-Version: 1.0
Content-type: multipart/related; boundary="foooobar"

--foooobar
Content-type: text/html

HERE

cat <<HERE

--foooobar
Content-type: image/png
Content-disposition: inline
Content-transfer-encoding: base64

HERE

base64 image.png

echo; echo '--foooobar--' ) | sendmail -oi $RECIPIENTS

我确实希望有一个简单的,标准的实用程序,但唉,相反,有许多,或多或少相互不兼容和模糊。同样,如果您可以使用mutt,那么这可能是您所希望的最广泛支持和标准的工具。

答案 1 :(得分:1)

试试这个:

uuncode input_file2.jpg attachment2.jpg >>tempfile
cat tempfile | mailx -s "subject" <email>

Uuencode读取文件(或默认为标准输入)并将编码版本写入标准输出。编码仅使用打印ASCII字符,并包括文件的模式和uudecode使用的操作数名称。如果name为/ dev / stdout,则结果将写入标准输出。默认情况下,将使用标准UU编码格式。如果在命令行上给出选项-m,则​​使用base64编码。