我正在使用PHPMailer(通过SMTP)通过我的网站发送电子邮件。我正在使用Windows 2012服务器作为我使用Hmailserver的邮件服务器。我正在使用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
如果我想传递所有电子邮件,我会以哪种方式执行此操作?
答案 0 :(得分: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配置。