我可以在本地使用以下脚本接收电子邮件。
rtmp_url="smtp://smtp.xxx.com:25"
rtmp_from="noreply@xxx.com"
rtmp_to="receiver-email@xxx.com"
file_upload="mail.txt"
echo "From: $rtmp_from
To: $rtmp_to
Subject: example of mail
Cc:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"MULTIPART-MIXED-BOUNDARY\"
--MULTIPART-MIXED-BOUNDARY
Content-Type: multipart/alternative; boundary=\"MULTIPART-ALTERNATIVE-BOUNDARY\"
--MULTIPART-ALTERNATIVE-BOUNDARY
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
This is an email example. This is text/plain content inside the mail.
--MULTIPART-ALTERNATIVE-BOUNDARY--
--MULTIPART-MIXED-BOUNDARY
Content-Type: application/octet-stream;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"logs.txt\"" > ./mail.txt
cat ./mail.txt | base64 >> ./mail.txt
# end of uploaded file
echo "--MULTIPART-MIXED-BOUNDARY--" >> ./mail.txt
echo "sending ...."
curl --url 'smtp://smtp.xxx.com:25' --ssl-reqd --mail-from $rtmp_from --mail-rcpt $rtmp_to -T './mail.txt' --insecure
但是我试图在docker容器中运行这个脚本。我在容器中收到此错误:连接到smtp.xxx.com:25失败;没有到主机的路由。 在我的电脑中,我在/etc/ssmtp/ssmtp.conf中将mailhub更改为smtp.xxx.com,因此它在本地运行。我是docker的新手,不知道如何在docker容器中实现这一点。请帮忙。
答案 0 :(得分:0)
在您的主机上执行cat /etc/resolv.conf
。您将在主机上看到一些DNS配置。这需要配置为docker守护程序
创建文件/etc/docker/daemon.json
{
"dns": ["IP1", "IP2"]
}
重新启动docker服务,然后再试一次,看看这是否适合你。
您可能在办公室网络上,您应该使用自己的DNS服务器。所以你需要告诉Docker守护进程它的容器应该使用哪个DNS服务器。这就是造成这个问题的原因。 daemon.json
文件可用于更改守护程序配置。