有一段时间,我们决定使用另一台服务器(虚拟服务器“B”)作为我们的邮件服务器。我将所有电子邮件帐户和邮箱从虚拟服务器“A”转移到虚拟服务器“B”。虚拟服务器“B”运行良好,客户从该服务器获取电子邮件。来自外部 SMTP 服务器的所有电子邮件都由虚拟服务器“B”接收。
在 VServer“A”上运行:
- 阿帕奇2
- 旧邮件服务器(postfix + dovecot)
在 VServer“B”上运行:
- 新的邮件服务器(postfix + dovecot)
问题:
我在 VServer“A”上的 apache2 遇到了问题。当用户使用联系表单时,PHP 脚本会将电子邮件发送到安装在同一服务器上的旧邮件服务器。电子邮件帐户仍然存在于 VServer“A”上,因为我不想丢失来自联系表单的电子邮件。
目前,我每天手动将电子邮件从 VServer“A”传输到 VServer“B”一次。
问题
有人能告诉我如何配置 PHP 或 Apache2,以便 VServer“A”从 PHP 发送的电子邮件被 VServer“B”接收。
编辑[解决方案]:
谢谢你的回答。但我通过更改 postfix 配置解决了这个问题。
1. /etc/postfix/master.cf 中的变化:
我推荐了将 postfix 连接到服务器 A 上的 dovecot 的两行:
#dovecot unix - n n - - pipe
# flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
答案1
有多种方法可以解决这个问题。
将 Web 服务器上 php.ini 中的 SMTP 设置更改为使用 serverB,而不是 localhost
将别名添加到 serverA 上的 postfix 配置中,以将您想要处理的每个本地地址的新消息重定向到 serverB。
更改您的 PHP 代码/应用程序配置以使用传送到服务器 B 的合格地址而不是裸用户名(我假设您现在正在使用这个)。
这一切都假设您可以成功地将邮件从服务器 A 发送到服务器 B。在命令行上测试这一点是明智的第一步。