Phpmailer,无法设置所需的 'from' 电子邮件
Phpmailer, can't set needed 'from' email
此代码有效,已发送电子邮件
$mail = new PHPMailer();
$mail->setFrom("name1@gmail.com", "Name");
$mail->addAddress($to); //Recipient name is optional
//Address to which recipient will reply
$mail->addReplyTo("name1@yahoo.com", "Reply");
//Send HTML or Plain Text email
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
if(!$mail->send())
{
echo 'Mailer Error: ' . $mail->ErrorInfo . "\n";
}
但出于某种原因,如果我将 From email 更改为 name2@yahoo.com
$mail->setFrom("name2@yahoo.com", "Name");
电子邮件不再发送。 Phpmailer 不报告任何错误消息。
name2@yahoo.com 是与此 Web 服务器相关的有效工作电子邮件地址。
谢谢。
PHPMailer 疑难解答指南中对此进行了介绍。
大多数服务提供商现在都有严格的 SPF 和 DMARC 配置(尤其是 Yahoo,因为他们发明了 DMARC),这意味着您不能通过他们自己的邮件从他们域中的地址发送 except服务器,或其 SPF 记录中包含的任何其他服务器。
您的代码是通过您自己的本地服务器发送的,该服务器不是 Yahoo 服务器,因此无法正常工作。
解决方案是通过 Yahoo 自己的服务器对您的电子邮件帐户进行身份验证,例如:
$mail->isSMTP();
$mail->Host = 'smtp.mail.yahoo.com';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Username = 'me@yahoo.com';
$mail->Password = 'password';
Yahoo 的 DMARC 配置不允许您伪造发件人地址,因此您只能使用与您的用户名匹配的发件人地址 - 这可能是您所看到的症状的原因。
此代码有效,已发送电子邮件
$mail = new PHPMailer();
$mail->setFrom("name1@gmail.com", "Name");
$mail->addAddress($to); //Recipient name is optional
//Address to which recipient will reply
$mail->addReplyTo("name1@yahoo.com", "Reply");
//Send HTML or Plain Text email
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
if(!$mail->send())
{
echo 'Mailer Error: ' . $mail->ErrorInfo . "\n";
}
但出于某种原因,如果我将 From email 更改为 name2@yahoo.com
$mail->setFrom("name2@yahoo.com", "Name");
电子邮件不再发送。 Phpmailer 不报告任何错误消息。
name2@yahoo.com 是与此 Web 服务器相关的有效工作电子邮件地址。
谢谢。
PHPMailer 疑难解答指南中对此进行了介绍。
大多数服务提供商现在都有严格的 SPF 和 DMARC 配置(尤其是 Yahoo,因为他们发明了 DMARC),这意味着您不能通过他们自己的邮件从他们域中的地址发送 except服务器,或其 SPF 记录中包含的任何其他服务器。
您的代码是通过您自己的本地服务器发送的,该服务器不是 Yahoo 服务器,因此无法正常工作。
解决方案是通过 Yahoo 自己的服务器对您的电子邮件帐户进行身份验证,例如:
$mail->isSMTP();
$mail->Host = 'smtp.mail.yahoo.com';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Username = 'me@yahoo.com';
$mail->Password = 'password';
Yahoo 的 DMARC 配置不允许您伪造发件人地址,因此您只能使用与您的用户名匹配的发件人地址 - 这可能是您所看到的症状的原因。