首页 > 解决方案 > 如何使用 sendmail 在 HTML 中显示嵌入的图像?

问题描述

我正在尝试通过 shell 脚本使用 sendmail 发送 HTML 邮件。HTML 邮件正在按需要发送,但图像未显示。我已经通过使用 sendmail -t <<EOT 发送 html 检查了多个线程,但它不适用于我并且发送的邮件是空白的。有人可以支持吗?

(
 echo "From: ABC@host.com"
 echo "To: DEF@host.com"
 echo "Subject: HTML Test"
 echo "MIME-Version: 1.0"
 echo "Content-Type: multipart/related;boundary=\"XYZ\""
 echo "Content-Disposition: inline"
 echo "--XYZ"
 echo "Content-Type: text/html; charset=ISO-8859-15"
 echo "Content-Transfer-Encoding: 7bit"

 cat $CONTENT

 echo "--XYZ"
 echo "Content-Type: image/jpeg;name=\"Logo.jpg\""
 echo "Content-Transfer-Encoding: base64"
 echo "Content-ID: <part1.06090408.01060107>"
 echo "Content-Disposition: inline; filename=\"Logo.jpg\""

 echo "$(base64 Logo.jpg)"

 echo "--XYZ--"
) | /usr/sbin/sendmail -t

另一种方法,但发送空白邮件。变量 Display_HTML 中的问题,它似乎没有正确获取 html 文件的内容。

export CONTENT="myfile.htm"
Display_HTML= cat "$CONTENT"

sendmail -t <<EOT
TO:$MAILTO
FROM:$MAILFROM
SUBJECT:$SUBJECT
MIME-Version: 1.0
Content-Type: multipart/related;boundary="XYZ"

--XYZ
Content-Type: text/html; charset=windows-1252

$Display_HTML

--XYZ
Content-Type: image/jpeg;name="Logo.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.06090408.01060107>
Content-Disposition: inline; filename="Logo.jpg"

$(base64 Logo.jpg)
--XYZ--
EOT

标签: htmllinuxshellunixsendmail

解决方案


推荐阅读