我在
PHPMailer中有一个问题.我有一个联系表单,并使用PHPMailer发送电子邮件.显然我可以发送,对我来说它返回“true”,但电子邮件不会到达您的收件箱.我已经尝试了几种方法来查找错误,但没有成功.我尝试使用和不使用SMTP身份验证,多个表单启用和禁用SMTP.请按照下面的代码.
<?php
session_start();
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
//$mail->IsSMTP();
$mail->Host = "smtp.mysite.com";
$mail->SMTPAuth = false;
$mail->Username = 'my@email.com';
$mail->Password = 'passhere';
$mail->From = "Newsletter";
$mail->Subject = "Newsletter";
$email = $_POST['email_news'];
$mail->AddAddress('my@email.com');
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->Body = "
<html>
<body>
<b>Email:</b> $email<br/><br/>
</body>
</html>
";
if(!$email){
$result = "error";
}else{
$send = $mail->Send();
if($send){
$result = "sucess";
}else{
$result = "error";
echo $mail->ErrorInfo;
}
}
$mail->ClearAllRecipients();
$mail->ClearAttachments();
header("Location: http://www.mysite.com");
?>
我设法通过gmail使用身份验证来解决我的问题.如下认证:
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = 'my@email.com';
$mail->Password = 'passhere';
但我怀疑.此身份验证代码仅用于从Gmail发送电子邮件?或者它是gmail在PHPMailer中为一般验证电子邮件提供的认可吗?
最佳答案 我会评论,但我没有足够的积分.
这发生在我几周前.只是想分享一下,如果您使用的是通用共享主机方案,请让您的网站主机配置域以启用SPF.
(我的软件包默认没有这些设置 – 只需检查您的Web主机服务器).
我的虚拟主机服务器上托管的某些域名正在接收电子邮件,而其他域名则没有(即使邮件是由Gmail发送的,电子邮件也会被退回给发件人).我无法弄清楚问题出在哪里,直到有人建议如果您正在共享主机方案,请检查您的记录.
您还可以在cPanel的论坛https://forums.cpanel.net/threads/email-can-send-not-receive.594419/上找到有关它的主题
只需2美分,希望能帮助别人.