当 postfix 位于同一服务器中的另一台 VM 上时,从一台 VM 发送邮件

rub*_*o77 6 virtual-machine email

我有一台只有一个 IP 且运行着三个虚拟机的服务器:

  • http-proxy - IP 10.77.77.254
  • email - IP 10.77.77.101
  • services - IP 10.77.77.104

在主机上我选择iptables,哪个端口去哪个服务器。我已经为emailVM设置了所有电子邮件端口,例如 25、143...。

端口 80 和 443 转到http-proxy决定哪个域转到哪个 VM 的端口。我在运行的两个 VMS 上都有 Php、ruby 和 rust 脚本:servicesVM 和emailVM。

email带有postfix和的VMcourier作为我的电子邮件服务器(以及更多)运行良好。它可以很好地发送和接收电子邮件。该服务器上的脚本php也可以在那里发送和接收电子邮件。emailVM上还有一些用户帐户,那里有他们的电子邮件。

我必须如何services在同一主机上设置我的其他VM,以便该 VM 上的脚本也可以发送电子邮件?

Rui*_*iro 6

实际上,servicesVM的答案可能是……这取决于。如果是应用程序,您可以将它们指向 email:25/TCP。

如果我们谈论的是守护进程/服务,您可以在虚拟机serviceshttp-proxy虚拟机中进行配置:

  • 在进出口中,作为智能主机 email

  • 一个简单postfix的中继email主机配置为指向主机。如,在main.cf

    relayhost = email
    
    Run Code Online (Sandbox Code Playgroud)
  • 或者,您可以将轻量级 SMTP 转发器配置为ssmtp,它只转发sendmail兼容 API发送的电子邮件。

ssmtp.conf你定义然后:

hostname=FQDN  # full DNS name of your server where `ssmtp` is installed
mailhub=email  # name or IP address of your central SMTP server
Run Code Online (Sandbox Code Playgroud)

sSMTP - 简单的 SMTP

sSMTP 是一种简单的 MTA,用于将邮件从计算机传送到邮件中心(SMTP 服务器)。sSMTP 简单轻便,没有守护进程或任何占用 CPU 的东西;只是sSMTP。与 Exim4 不同,sSMTP 不接收邮件、扩展别名或管理队列。