我正在尝试从 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