我正在寻找一种简单的方法,以编程方式从Linode Ubuntu服务器发送电子邮件(不是批量发送或发送垃圾邮件,而是简单的iOT类型通知)。我已经启动并运行了一个dockerized postfix / dovecot系统,但是我不知道如何从容器外部使用它。我已经研究了sendmail,但是由于我已经配置了SMTP服务器,因此这似乎是重复的。我的问题是我可以在我的Ubuntu服务器上安装什么,以便允许我从使用我的Docker容器中现有SMTP服务器的命令行(脚本)发送简单电子邮件?
答案 0 :(得分:1)
对于这个问题,我找到的最简单的解决方案是nodemailer
,因为我需要发送电子邮件的应用程序是一个node.js应用程序,我就像从电子邮件客户端连接到它一样。 / p>
答案 1 :(得分:0)
这类似于拥有必须发送电子邮件as described here的Jenkins容器:
对于集装箱式Jenkins系统,还可以在同一“管理Jenkins”页面的“电子邮件通知”部分中配置邮件服务器。
唯一的区别是提供给SMTP服务器的IP /主机名选项。 与其提供已知的SMTP服务器的IP和主机,不如使用docker0
的IP。对于公司网络,您可能不得不使用SMTP中继服务器。在这种情况下,您可以通过setting up Postfix配置SMTP通信。
安装后,使用正确的中继信息更新
/etc/postfix/main.cf
:myhostname
,myorigin
,mydestination
,relayhost
,alias_maps
,{{1 }}。
但是:
需要对Postfix进行两项更改,以将其公开给一台主机上的Docker容器。
- 将Postfix暴露给docker网络,也就是说,必须将Postfix配置为绑定到localhost和docker网络。
- 接受来自任何Docker容器的所有传入连接。
Docker桥接器(
alias_database
)在您的以太网端口和Docker容器之间起到桥梁的作用,以便数据可以往返。
通过将docker0的IP添加到docker0
,我们达到了第一个要求。对于第二个要求,应将整个docker网络以及
inet_iterfaces
添加到localhost
。