使用 Linux 中的任何邮件实用程序发送邮件正文中的图像

使用 Linux 中的任何邮件实用程序发送邮件正文中的图像

我正在尝试从 Linux 服务器发送电子邮件,我想发送图像,而不是作为附件,该图像应显示在邮件正文中。

我试过。

mailx -s "TEST mail" <MASKED>@mask.com < download.JPEG

上面的命令在邮件正文中给出了随机垃圾数据

mailx --append "Content-type: text/html" -s "TEST mail" <MASKED>@mask.com < download.JPEG

上面的命令没有起作用

mutt -a "download.JPEG" <MASKED>@mask.com -s "TEST mail" < /dev/null

上述命令将图像作为附件发送。

UUENCODE没有安装在我们的服务器中,所以我们不应该使用它。

以上任何人我都不想要。我希望我的照片显示在邮件正文上。

对此的任何帮助都将受到高度赞赏。

答案1

要使图片内联显示,必须将其编码为带有Content-Disposition: inline标头的有效 MIME 对象。

mpack命令可以做到这一点。

尝试发送这样的电子邮件:

mpack -s "TEST mail" -c image/jpeg download.JPEG <MASKED>@example.com

或者,如果您想将结果输出到文件中而不是直接发送:

mpack -s "TEST mail" -c image/jpeg download.JPEG -o email-with-image.txt

然后您可以稍后发送,例如:

mailx <MASKED>@example.com < email-with-image.txt

如果您想在图像之前添加文本到消息中,请将其写入文件,并向命令添加-d text-before.txt选项mpack。要在图像后添加文本,只需将其附加到 mpack 生成的文件中就可以了。

答案2

您可以使用以下命令。

命令

mutt -e "set content_type=text/html" -a lb.png -s "Test Mail" [email protected] < mail.html

邮件.htm

<img src="cid:lb.png" />

参考:在电子邮件正文中显示附加图像

答案3

发送图像邮件是一个 100 行的 bash 包装器sendmail(邮件传输协议实现),支持发送多个jpg/png/gif内嵌图片和文本到gmail/outlook/qq/163服务。这是手册。

sendimagemail dst [image...] [--cc=''] [--bcc=''] [--subject='20210315 00:33:52'] [--body=''] [--dry] -- [sendmail-option]

# send text/html to one or more residents, with Cc and Bcc
sendimagemail [email protected] --body='Hi bilabila' --subject='Hi bilabila'
sendimagemail [email protected] --body='<div style=color:lightslategray>Hi bilabila<div/>'
sendimagemail 'qq [email protected], google [email protected]' --cc='163 [email protected]' --bcc='ms [email protected]'

# send one or more images
sendimagemail [email protected] a.jpg
sendimagemail [email protected] --body='<div>images</div>' a.jpg b.png c.gif

# send with non-default account
sendimagemail [email protected] a.jpg -- -a google
sendimagemail [email protected] a.jpg -- [email protected] --host=smtp.qq.com --user=bilabila --passwordeval='echo TOKEN' --port 587 --auth --tls
sendimagemail [email protected] a.jpg -- [email protected] --host=smtp.163.com [email protected] --passwordeval='echo TOKEN' --port 25 --auth --tls
sendimagemail [email protected] a.jpg -- [email protected] --host=smtp.gmail.com [email protected] --passwordeval='echo TOKEN' --port 587 --auth --tls

# show what would be sent
sendimagemail [email protected] a.jpg --dry

相关内容