将PHP配置为仅向一个帐户发送所有邮件

将PHP配置为仅向一个帐户发送所有邮件,php,email,Php,Email,如何配置PHP将所有发送的邮件发送到我自己的帐户,这样我就可以测试业务应用程序,而无需向毫无戒心的企业发送邮件,例如“恭喜,你有了一个新帐户。你将收取xxx美元的账单”?而不是配置PHP,一个通用的解决方案是建立一个虚拟SMTP服务器 请参阅。您已经编写了应用程序,并且它使用实时电子邮件地址,现在您想测试它吗?您是否对mail使用了集中式函数,或者代码中有大量的mail()调用?很抱歉,您必须更改每个mail()调用。帮自己一个忙,用自己的函数替换它们,然后在该位置处理测试/实时功能。您可以将运

如何配置PHP将所有发送的邮件发送到我自己的帐户,这样我就可以测试业务应用程序,而无需向毫无戒心的企业发送邮件,例如“恭喜,你有了一个新帐户。你将收取xxx美元的账单”?

而不是配置PHP,一个通用的解决方案是建立一个虚拟SMTP服务器


请参阅。

您已经编写了应用程序,并且它使用实时电子邮件地址,现在您想测试它吗?您是否对mail使用了集中式函数,或者代码中有大量的mail()调用?很抱歉,您必须更改每个mail()调用。帮自己一个忙,用自己的函数替换它们,然后在该位置处理测试/实时功能。

您可以将运行PHP的服务器上的所有端口25流量重定向到一个mailserver/端口,该端口将所有邮件发送给您


这是我所知道的唯一100%万无一失的方法。

你可以创建一个谷歌应用程序帐户(或使用你的虚拟服务器),创建一个全面的电子邮件帐户,并将其发送到域名。你所要做的就是看一看综合账户

我找到了这个网站:

我的服务器正在运行qmail,因此我编辑了/var/qmail/control/smtproutes的内容,如下所示:

:smtp.dummysmtp.com用户名密码

当我用PHP mail()发送一封简单的邮件时,它起到了作用,但后来我发现邮件仍在发送给其他人。我不得不深入到代码的内部,并发现:

/* Choose the mailer */
switch($this->Mailer) {
  case 'sendmail':
    $result = $this->SendmailSend($header, $body);
    break;
  case 'smtp':
    $result = $this->SmtpSend($header, $body);
    break;
  case 'mail':
    $result = $this->MailSend($header, $body);
    break;
  default:
    $result = $this->MailSend($header, $body);
    break;
    //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));
    //$result = false;
    //break;
}

因此,我必须确保每个选项都配置为将其邮件发送到dummysmtp.com。一旦我弄明白了,一切都成功了。

谢谢。我已经看过那条线了。所有的解决方案要么需要Windows,要么是针对Java服务器的。我在linux上,我的MTA是qmail。我确实找到了一个更好的解决方案,现在我正在测试它。如果成功了,我会回复我自己的问题。@Fosco,你能证明为什么这是个糟糕的主意吗@Isiden,SMTP服务器建议在Java上运行,而不是在您的应用程序上运行。好吧,在测试期间,不再将更改仅限于一个应用程序,现在整个服务器无法发送合法的电子邮件。请参阅下面的Isiden帖子:他的解决方案…是的,整个测试服务器与生产环境隔离。抱歉。我没有写申请书。我有一份数据库的副本,我试图将所有电子邮件地址更改为我自己的,但数据库没有规范化,还有许多表包含我尚未找到的实时电子邮件地址。我建议您更改发送电子邮件的功能,而不是数据库。电子邮件地址用作mail()函数中的参数,您可以将其替换为自己的。-;建议操作硬代码配置数据?不好意思。让配置进入“测试”模式,并有一个“测试电子邮件地址”将所有电子邮件路由到怎么样。这就是我的建议。。不是硬编码配置数据。您指的是iptables吗?这很有趣,但我想我找到了一个更优雅的解决方案,至少目前是这样。@Isiden是的,使用iptables可以做到:-)。我很高兴你找到了解决办法,不管是什么。嗯,不完全是。我发现邮件仍在向其他人发送。我尝试了sudo/sbin/iptables-t nat-A OUTPUT-m tcp--dport 25-j DNAT--to destination 65.19.154.62,但得到了iptables:Unknown error 4294967295 IP地址是smtp.dummysmtp。com@Isiden:您为什么使用nat表?你不是应该用马槽吗?谢谢。这听起来与我在下面找到解决方案时所描述的内容类似。如何创建虚拟服务器?