我遇到了一个令我抓狂的问题。
基本上,我在 CentOS 发行版中运行 10 个虚拟主机。
从现在开始,我将这些虚拟主机域名称为 www.example1.com 至 www.example10.com
与此同时,我购买了一项外部服务,即邮件服务器,它将保存与这些域名“相关”的所有电子邮件。从现在起,我将把这些电子邮件称为[电子邮件保护]到[电子邮件保护]。这些电子邮件地址可以作为“用户”使用,以便通过邮件服务器进行 smtp 电子邮件中继。
显然,这 10 个域的所有 MX 记录都已配置为指向正确的外部邮件服务器,因此发送到这些地址的电子邮件可以按预期工作。
问题是由于这 10 个域通过 PHP 脚本生成电子邮件。因此,我需要配置我的 CentOS 发行版来处理通过 PHP 生成的 OUTGOING(这就足够了,我不需要服务器处理之前提到的传入电子邮件)电子邮件。
我想实现这样的配置:
1) www.example1.com generates an email through PHP
2) the MTA "understands" the fact I'm sending an email that "is arriving" from www.example1.com
3) the MTA picks up the correct SMTP username/password with which connect to the external smtp relay. ( that will be [email protected] - password-of-domain1 )
4) the MTA connects to the external SMTP with the credentials found above, and dispatches the email
为了保证系统的一致性,我想使用这个外部 SMTP 中继来发送邮件。我想让 Web 服务器完成它的工作,让邮件服务器完成其他工作。
有什么想法或提示可以实现这种配置吗?从现在起,我尝试配置 sendmail 和 postfix 来实现这一点,但很不走运。
PS:我使用 GoDaddy 作为外部电子邮件服务器。
答案1
您没有指出您正在使用什么 MTA,但使用 postfix 和 exim 实现应该相当简单。
对于后缀,请查看http://www.postfix.org/SASL_README.html#client_sasl_sender
对于 exim,您需要编写一个查找程序来从数据源(例如文件)中获取正确的身份验证详细信息。