使用mailsend v1.19设置MIME类型无效,原始邮件无对应痕迹求排查
问题诊断与修复方案
看了你的问题和提供的命令、原始邮件内容,我立刻注意到问题出在mailsend v1.19的参数搭配上——你设置的-mime-type没生效,是因为少了一个关键参数来触发MIME模式。
你踩的坑
- 未启用MIME模式:在mailsend v1.19里,单独用
-mime-type指定内容类型是没用的,必须搭配-mime参数来开启MIME支持。默认情况下程序会用纯文本模式发送,直接忽略你的-mime-type设置。 - 参数逻辑优先级:当用
-msg-body加载本地HTML文件时,程序默认不会自动识别它的MIME类型,必须显式开启MIME模式才能让-mime-type生效。
修正后的命令
给你的命令加上-mime参数就行,调整后的命令如下:
mailsend -smtp local-mail.com -f sender@sender.local -t receiver@receiver.local -sub "Another Test Email With HTML body and mime type set from file body" -msg-body ~/justbody.html -starttls -user xxx -pass xxxx -mime -mime-type "text/html"
额外测试方案
如果上面的命令还是有问题,你可以试试用-msg参数替代-msg-body来指定HTML文件,部分版本的mailsend中这个参数对MIME类型的适配更顺畅:
mailsend -smtp local-mail.com -f sender@sender.local -t receiver@receiver.local -sub "Another Test Email With HTML body and mime type set from file body" -msg ~/justbody.html -starttls -user xxx -pass xxxx -mime -mime-type "text/html"
为什么之前会显示(null)?
从你提供的原始邮件里Content-Type: (null); charset=utf-8就能看出来,程序其实尝试设置Content-Type头,但因为没开启MIME模式,它拿不到你指定的text/html值,只能填充(null)。加上-mime参数后,程序就会正确读取并应用你设置的MIME类型了。
内容的提问来源于stack exchange,提问作者Luigi Cirillo
相关产品推荐
相关产品推荐

