1

我正在使用 PHPMailer(通过 SMTP)通过我的网站发送电子邮件。我正在使用 Windows 2012 服务器作为使用 Hmailserver 的邮件服务器。我正在使用 Mailgun 转发我的电子邮件。

我做过的事情:

  • 我已经设置并验证了我的 mailgun 设置。
  • 我已经在没有中继的情况下测试了通过服务器发送和接收电子邮件(工作正常)。

我的困境:

  • 在某一阶段,我将不得不说明中继信息,例如身份验证或主机名。到目前为止,我看到两个地方可以声明这一点 - 见下文:

1) 通过 PHPMailer 脚本指定:

$mail->IsSMTP();
$mail->host = "smtp.mailgun.org";
$mail->Username = "username";
$mail->Password = "password";

2) 在 hmailserver admin 中指定(在服务器上):

http://puu.sh/cJLpk/c3d548981c.png

如果我想转发我的所有电子邮件,我该怎么做?

4

1 回答 1

2

使用您的本地邮件服务器 (hmailserver) 作为中继会更快(至少对于您的客户端脚本而言)并且更可靠。它应该配置为指向 mailgun,如您的屏幕截图所示。Mailgun 应该为您提供可用于验证中继的凭据。

当您使用 PHPMailer 发送时,您应该将其配置为指向 localhost,如下所示:

$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->Username = "username";
$mail->Password = "password";

(您可能不需要本地服务器的用户名和密码)。虽然听起来很奇怪,但使用 SMTP 到 localhost 通常比调用本地 sendmail 二进制文件(或使用 PHP 的mail()函数)更快。

在您的原始代码中,您拥有host而不是Host- PHP 对于属性名称是区分大小写的,因此如果那是您的真实代码,那将会失败。

这应该就是它的全部了。

唯一的其他复杂情况是如果 hmailserver 还发送不应该通过 mailgun 的消息,在这种情况下,您将需要进一步了解您的 hmailserver 配置。

于 2014-11-09T19:51:18.037 回答