如何使用dockerized邮件服务器从Ubuntu服务器发送邮件

时间:2019-01-26 23:26:37

标签: docker smtp sendmail postfix-mta mutt

我正在寻找一种简单的方法,以编程方式从Linode Ubuntu服务器发送电子邮件(不是批量发送或发送垃圾邮件,而是简单的iOT类型通知)。我已经启动并运行了一个dockerized postfix / dovecot系统,但是我不知道如何从容器外部使用它。我已经研究了sendmail,但是由于我已经配置了SMTP服务器,因此这似乎是重复的。我的问题是我可以在我的Ubuntu服务器上安装什么,以便允许我从使用我的Docker容器中现有SMTP服务器的命令行(脚本)发送简单电子邮件?

2 个答案:

答案 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.cfmyhostnamemyoriginmydestinationrelayhostalias_maps,{{1 }}。

但是:

需要对Postfix进行两项更改,以将其公开给一台主机上的Docker容器。

  
      
  1. 将Postfix暴露给docker网络,也就是说,必须将Postfix配置为绑定到localhost和docker网络。
  2.   
  3. 接受来自任何Docker容器的所有传入连接。
  4.   
     

Docker桥接器(alias_database)在您的以太网端口和Docker容器之间起到桥梁的作用,以便数据可以往返。
  通过将docker0的IP添加到docker0,我们达到了第一个要求。

     

对于第二个要求,应将整个docker网络以及inet_iterfaces添加到localhost