我正在使用以下脚本通过sendmail函数将多个图像嵌入到邮件中。

sendmail -t <<EOT
TO: [email protected]
FROM: [email protected]
Cc: [email protected]
SUBJECT: Phobos Report
MIME-Version: 1.0
Content-Type: multipart/related;boundary="XYZ"

--XYZ
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
</head>
<body bgcolor="#ffffff" text="#000000">
<img src="cid:part1.06090408.01060107" alt=""><br/>
<img src="cid:part2.06090408.01060107" alt=""><br/>
<img src="cid:part3.06090408.01060107" alt="">
</body>
</html>

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

$(base64 rag1.jpg)

--XYZ

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

$(base64 rag2.jpg)

--XYZ

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

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

这里只有第一个图像被嵌入。其他所有都无法添加。这两个图像被添加为基于文本的附件。如何在此脚本上添加多个图像?

最佳答案

这是一个古老的问题,但我认为无论如何应该得到一个答案。

代码的问题是,您在MIME边界和最后两个图像的MIME标题之间放置了空行,如下所示:

--XYZ

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

这是,不允许。您应该更正您的代码并在以下两个位置删除这些空行,如下所示:
--XYZ
Content-Type: image/jpeg;name="rag2.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part2.06090408.01060107>
Content-Disposition: inline; filename="rag2.jpg"

和这里:
--XYZ
Content-Type: image/jpeg;name="rag3.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part3.06090408.01060107>
Content-Disposition: inline; filename="rag3.jpg"

在边界线之前允许使用空行,这意味着它们将成为前一机构的一部分,在该机构中它们通常是无害的(但是我可以在上下文中弥补它们的可能。但是,这不是您的情况。)

最好永远不要在MIME边界的两侧放置多余的空行。当然,这与第一个MIME边界之前所需的空行无关,在该空行中,它分隔了MIME header 。

关于linux - Shell脚本使用sendmail嵌入多个图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32225589/

10-10 13:21