请教大家一个困扰我许久的问题。
使用 sendmail 发送 html 邮件。
方法如下:
function sendHtmlMailViaSendmail()
{
mailto="$1"
subject="$2"
content="$3"
(
echo "To:$mailto"
echo "From: [email protected]"
echo "Content-Type:text/html;charset=UTF-8"
echo "Subject:$subject"
echo
cat $content
) | sendmail -t
}
sendHtmlMailViaSendmail [email protected] "这是主题" /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 格式的邮件。