我有一个docker container运行PHP和apache.主机位于运行docker实例的AWS实例中.我无法从码头码头发送电子邮件.有没有办法使用sendmail使用docker的主机配置从docker实例发送电子邮件?
以下命令从主机发送电子邮件,但不从docker实例发送电子邮件.也没有错误.
echo "Subject: Testing Email" | cat - text | /usr/lib/sendmail -F abc.pqr@domain.com -t abc.pqr@domain.com
最佳答案
我所做的是配置主机MTA来监听docker0,并在容器中安装ssmtp,以将主机MTA的容器中的sendmail挂接.在主机上运行MTA的原因是系统(关键)错误可以发送到管理员的邮箱.在容器中不运行MTA的原因是主机系统已经运行了MTA,这是一个重复的过程.
原文链接:https://www.f2er.com/docker/436363.html在主机上,我使用postfix.我们所需要做的就是配置postfix来监听docker0并接受Docker容器发出的邮件.编辑文件/etc/postfix/main.cf并将docker0 IP地址添加到inet_interfaces,以便它接受Docker容器的连接.此外,将Docker容器的网络地址添加到网络中,以便Docker容器通过主机上的后缀服务器发送邮件是合法的. (reference and more details)
要在容器中使用sendmail,请安装ssmtp并将FromLineOverride设置为允许,并将mailhub设置为/etc/ssmtp/ssmtp.conf中主机的IP地址.您可以将mailhub设置为smtp-server等符号,然后使用–add-host选项运行容器,如Dockerfile所示(使用–add-host smtp-server:your-docker0-address运行) .这将在容器中配置可用的sendmail,这些容器实际上将使用主机MTA来发送邮件.