在Windows上使用PHP通过中继发送邮件
我使用PHPMailer(通过SMTP)通过我的网站发送电子邮件。我正在使用windows 2012服务器作为我的邮件服务器,该服务器正在使用Hmailserver。我正在用邮枪传递我的电子邮件 我所做的事情:在Windows上使用PHP通过中继发送邮件,windows,phpmailer,mailgun,emailrelay,Windows,Phpmailer,Mailgun,Emailrelay,我使用PHPMailer(通过SMTP)通过我的网站发送电子邮件。我正在使用windows 2012服务器作为我的邮件服务器,该服务器正在使用Hmailserver。我正在用邮枪传递我的电子邮件 我所做的事情: 我已经设置并验证了我的邮枪设置 我已经测试过在没有中继的情况下通过服务器发送和接收电子邮件(工作正常) 我的困境: 在某个阶段,我必须声明中继信息,例如身份验证或主机名。到目前为止,我看到了两个可以声明这一点的地方——见下文: 1) 通过PHPMailer脚本指定: $mail-
- 我已经设置并验证了我的邮枪设置
- 我已经测试过在没有中继的情况下通过服务器发送和接收电子邮件(工作正常)
- 在某个阶段,我必须声明中继信息,例如身份验证或主机名。到目前为止,我看到了两个可以声明这一点的地方——见下文:
$mail->IsSMTP();
$mail->host = "smtp.mailgun.org";
$mail->Username = "username";
$mail->Password = "password";
2) 在hmailserver admin(服务器上)中指定:
如果我想中继我所有的电子邮件,我该怎么做?使用您的本地邮件服务器(hmailserver)作为中继将更快(至少对于您的客户端脚本而言)而且更可靠。它应该配置为指向邮枪,如屏幕截图所示。Mailgun应向您提供可用于认证中继的凭据 使用PHPMailer发送时,应将其配置为指向localhost,如下所示:
$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->Username = "username";
$mail->Password = "password";
(本地服务器可能不需要用户名和密码)。尽管听起来有些奇怪,但使用SMTP到localhost通常比调用本地sendmail二进制文件(或使用PHP的mail()
函数)要快
在您的原始代码中,您使用了host
而不是host
——PHP是属性名称的case-senetive,因此如果这是您的真实代码,则可能会失败
这应该是全部
唯一的另一个复杂问题是,如果hmailserver也发送不应该通过mailgun发送的消息,那么您需要进一步了解hmailserver配置。谢谢,这应该是我所需要的!