请教大家一个困扰我许久的问题。
使用 sendmail 发送 html 邮件。
方法如下:
function sendHtmlMailViaSendmail()
{
mailto="$1"
subject="$2"
content="$3"
(
echo "To:$mailto"
echo "From: xxx@yyy.com"
echo "Content-Type:text/html;charset=UTF-8"
echo "Subject:$subject"
echo
cat $content
) | sendmail -t
}
sendHtmlMailViaSendmail aaa@bbb.com "这是主题" /tmp/report.html
这样可以发出去邮件,但是会被目标邮件服务器拦截或者标记为垃圾。
google 一顿之后发现通过外部的 smtp 服务器发出,如腾讯的 「 smtp.exmail.qq.com 」,就不会被识别为垃圾邮件。
依照这个去更新 senmail 设置: https://tecadmin.net/sendmail-to-relay-emails-through-gmail-stmp/。
结果 sendmail 无法启动,显示端口被占用,服务无法启动。
怀疑是 docker 和外部的宿主机冲突导致。
Job for sendmail.service failed because a configured resource limit was exceeded. See "systemctl status sendmail.service" and "journalctl -xe" for details.
daemon MTA: problem creating SMTP socket
NOQUEUE: SYSERR(root): opendaemonsocket: daemon MTA: cannot bind: Address already in use
daemon MTA: problem creating SMTP socket
NOQUEUE: SYSERR(root): opendaemonsocket: daemon MTA: cannot bind: Address already in use
daemon MTA: problem creating SMTP socket
sendmail.service never wrote its PID file. Failing.
Failed to start Sendmail Mail Transport Agent.
Unit sendmail.service entered failed state.
sendmail.service failed.
请问大家有没有好的解决这个问题的方法, 或者其他方法用来在 docker 中发送走外部 smtp 的 html 格式的邮件。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.