如何让sendmail在Alpine Docker容器中工作?

如何让sendmail在Alpine Docker容器中工作?,docker,sendmail,alpine,Docker,Sendmail,Alpine,出于测试目的,我只想发送简单的电子邮件,但在容器内执行sendmail时,我得到sendmail:无法连接到远程主机(127.0.0.1):连接被拒绝。在Alpine容器中使用sendmail时,我需要考虑什么?在容器中,不会运行MTA(邮件传输代理),只是没有邮件服务器在运行。例如,您可以使用ssmtp()并将其配置为使用外部的smtp服务器,例如您的提供者(例如mail.yourprovider.com) 您可以使用ssmtp发送电子邮件。下面是一个类似的例子,无法从php Docker映像

出于测试目的,我只想发送简单的电子邮件,但在容器内执行sendmail时,我得到
sendmail:无法连接到远程主机(127.0.0.1):连接被拒绝
。在Alpine容器中使用sendmail时,我需要考虑什么?

在容器中,不会运行MTA(邮件传输代理),只是没有邮件服务器在运行。例如,您可以使用ssmtp()并将其配置为使用外部的smtp服务器,例如您的提供者(例如mail.yourprovider.com)


您可以使用ssmtp发送电子邮件。下面是一个类似的例子,无法从php Docker映像内部发送邮件。这里您可以进一步阅读->

如果您使用BusyBox sendmail,您可以在php.ini文件中设置配置

BusyBox sendmail中继到SMTP服务器。可以在命令行上使用-S选项指定服务器

我在php.ini中的配置是:

sendmail_path = /usr/sbin/sendmail -S 172.16.239.1 -t -i
我正在另一个容器中使用SMTP服务器


将SMTPHOST环境变量设置为smtp服务器的主机名或IP。
自2008年9月27日起,busybox sendmail提交()中就存在使用此变量的代码,但仅在2016年7月14日使用提交更新了用法页面。请注意,在线文档页面没有反映这些内容ngeshttps://www.busybox.net/downloads/BusyBox.html. 使用sendmail--帮助查看正确的用法。

添加到的早期答案中

  • 在容器的docker文件中安装ssmtp
  • 运行apk更新
    运行apk添加ssmtp
    
  • 在主机上创建配置文件
  • root=postmaster
    mailhub=mail.privatemail.com:587
    FromLineOverride=YES
    重写域=
    
    AuthUser=谢谢你的提示,但是我该如何配置它呢?我在邮件服务器方面没有太多的专业知识。在AWS Linux实例中,一切都正常工作,无需更改任何默认设置,因此我正在寻找最简单的解决方案。
    root=postmaster
    mailhub=mail.privateemail.com:587
    FromLineOverride=YES
    rewriteDomain=<YouDomain.com>
    AuthUser=<YouEMail@YourDomain.com
    AuthPass=<YouUserPass>
    UseSTARTTLS=YES
    hostname=YourDomain.com