bash 脚本电子邮件适用于 SMS 文本,但不适用于 MMS - MIME 内容似乎由手机公司进行边界隔离

bash 脚本电子邮件适用于 SMS 文本,但不适用于 MMS - MIME 内容似乎由手机公司进行边界隔离

我需要我的 bash shell 脚本将感兴趣的 jpg 文件“发送邮件”(特别是 ssmtp)到电子邮件客户端和/或两个 Android“文本”(MMS)客户端。只要我使用非 MIME、非 HTML,我的 bash 脚本就会将电子邮件发送到电子邮件客户端,将短信发送到 Android 客户端,但我们真正需要的是 Android 收到带有内联渲染图像的 MMS 版本。Verizon 是运营商,因此我们尝试使用以下 shell 脚本行来寻址 @mypixmessages.com:

cat "$path"content|mail -s "$(cat "$path"subject.txt)" "$(cat "$path"recipients.txt)"

sendmail 程序(上面一行中的“mail”)实际上是 ssmtp,以防万一存在一些关于哪个 sendmail 程序可以或不能正确发送到 MMS 的已知问题。 此命令行可以正常发送到短信,尽管与 @mypixmessages.com 的 Verizon 网关不同。而且 @vzwpix.com 不会向我们的手机输出任何内容。

“内容”文件的大小约为 19KB,如下所示:

Mime-Version: 1.0
Content-Type: multipart/related; boundary=20200918111059657_LINE

This is a MIME encoded message. Decode it with mmunencode

--20200918111059657_LINE

Content-Type: multipart/alternative
SHOULD BE AN IMAGE DISPLAYED

--20200918111059657_LINE

Content-Type: Text/HTML; charset=US-ASCII
<html>
<body>
<img src="cid:192168011_01_20200918205038535_INTRUSION_DETECTION.jpg"/>
</body>
</html>

--20200918111059657_LINE

Content-ID: <192168011_01_20200918205038535_INTRUSION_DETECTION.jpg>
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Disposition: inline

/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJ
.
.  (more lines of encoding like this are here)
.
NoATtRRS0AJS0UgoAkQdTTqRBxS96AFJzxnk0UmfmyKKAP/Z

--20200918111059657_LINE--

使用 mmencode 进行 base64 编码。

通过手机上显示的内容来判断,这被封装在某些更高级别的 MIME 内容中,如果你愿意的话,这些内容的边界会封锁我自己的 MIME 内容,防止其被标记。

有谁知道有什么解决方案,可以让我的内容保留为控制内容,以便显示图像?但由于我从未成功使用过 MMS,我是否可能在构建的 MIME 内容文件中犯了某种错误(如上所示)?或者我读到并非所有 sendmail 相似物都能产生合适的输出,如果应该查看的话?如果有经验丰富的人,这里肯定会很感激。谢谢您的帮助!!!

编辑:(@mypixmessages.com)确实正确地翻译了一封带有内嵌 jpg 图像的简单 gmail 电子邮件(当然,GUI 来自我的笔记本电脑)当我让 Gmail 添加 MIME/HTML 标记时。所以我只能得出这样的结论:我的服务器 (CLI) 上的 ssmtp 在发送电子邮件时对 MIME 做了一些操作,例如添加边界和/或类似操作,或者我没有正确使用 MIME,这迫使我的 MIME 标记被视为纯文本。让我很难排除故障的原因是,我的 Android 不允许我查看收到的文本上的原始 MMS MIME 标记语言。

相关内容