如何:

如何:

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

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

在主机上,我使用 iptables 选择哪个端口连接到哪个服务器。我已经为email虚拟机设置了所有电子邮件端口,例如 25、143...。

端口 80 和 443 通向http-proxy决定哪个域通向哪个虚拟机的端口。我在两个运行的 VMS 上都有 Php、ruby 和 rust 脚本:VMservicesemailVM。

email虚拟机可以作为我的电子邮件服务器(以及更多)正常工作postfixcourier它可以很好地发送和接收电子邮件。该服务器上的脚本也php可以在那里发送和接收电子邮件。虚拟机上还有一些用户帐户email,其中有他们的电子邮件箱。

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

答案1

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

如果我们谈论守护进程/服务,您可以在serviceshttp-proxyVM 中进行配置:

  • 在 exim 中,作为 smarthostemail

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

    relayhost = email
    
  • 或者,您可以将轻量级 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

sSMTP - 简单 SMTP

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

答案2

一种解决方案是在计算机上配置修复后空客户端services

这样本services机上的postfix就会将邮件转发到本机上的postfix email

如何:

services1-在机器上安装 postfix :

$ yum install postfix

2- 配置services机器后缀以将邮件中继到机器email,如果您使用域名,请保留括号。

编辑:

使用 barckets 可以避免从 dns 查找 MX 记录。

$ postconf -e "relayhost=[email.example.com]"

3- 让机器上的 Postfix 邮件服务器services仅在环回接口上侦听要传送的电子邮件。

postconf -e "inet_interfaces=loopback-only"

4- 更改空客户端的配置,以便来自 127.0.0.0/8 IPv4 网络和 [::1]/128 IPv6 网络的邮件由本地空客户端转发到中继主机。

$ postconf -e "mynetworks=127.0.0.0/8 [::1]/128"

5- 配置 Postfix,以便将所有外发邮件的发件人域重写为email计算机域 email.example.com。

postconf -e "myorigin=email.example.com"

编辑:

这里没有括号,因为这只是一个将替换您的services计算机发件人域名的字符串。

6-重新启动本地 postfix null 客户端。

$ systemctl restart postfix

相关内容