繁体   English   中英

使用实时服务器 SMTP 服务器通过 PHP Mailer 发送电子邮件不起作用

[英]Send email using live server SMTP server through PHP Mailer not working

我正在使用 PHPMailer v6 并尝试从共享服务器电子邮件发送邮件。 我的代码:

require_once "vendor/autoload.php";
$mail = new PHPMailer;
$mail->SMTPDebug = 3;                               
$mail->isSMTP();                                     
$mail->Host = 'cp-ht-1.webhostbox.net';
$mail->SMTPAuth = true;                               
$mail->Username = 'info@gitanjaliadvertising.com'; 
$mail->Password = "**********";                           
$mail->SMTPSecure = "ssl";                           
$mail->Port = 465;                                   
$mail->From = "abc@gmail.com";
$mail->FromName = "Full Name";
$mail->addAddress("xyz@gmail.com", "Recepient Name");
$mail->isHTML(true);
$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send()) 
{
echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
echo "Message has been sent successfully";
}

如果我运行该页面,它会显示成功消息,但我的收件箱中没有任何邮件。 在调试时我得到:

客户端:250 邮件因通过 SMTP 身份验证进行欺骗尝试而被拒绝

如果我使用我的 gmail 详细信息,那么它工作正常,但不知道服务器邮件详细信息有什么问题。我搜索了很多文章,但没有得到任何解决方案。 有人说要删除以下行,但它不起作用..

$mail->isSMTP();

请帮忙

由于错误清楚地表明您正在尝试进行电子邮件欺骗。

CLIENT: 250 Message denied for spoofing attempt via SMTP Auth

有关电子邮件欺骗的更多信息:

电子邮件欺骗是伪造电子邮件标头,使邮件看起来像是来自某人或其他地方而不是实际来源。 电子邮件欺骗是网络钓鱼和垃圾邮件活动中使用的一种策略,因为当人们认为电子邮件是由合法来源发送时,他们更有可能打开电子邮件。

解决方案:正如我在您的代码中看到的,您已将$mail->From设置为 gmail 帐户。 这不属于您的域,最终会失败。

更改$mail->SetFrom = "abc@gmail.com"; $mail->SetFrom = "info@gitanjaliadvertising.com";

如果你想回复到“abc@gmail.com”,你可以添加replyTo到“abc@gmail.com”

谢谢。

您可以使用以下代码和库。 我认为这将解决您的问题。

包括(class.phpmailer.php);
$mail = new PHPMailer(); // 创建一个新对象
$mail->IsSMTP(); // 启用 SMTP
$mail->SMTPDebug = 0; // 调试:1 = 错误和消息,2 = 仅消息
$mail->SMTPAuth = true; // 认证开启
$mail->SMTPSecure = 'ssl'; // 需要为 GMail 启用安全传输
$mail->Host = 'smtp.gmail.com';
$邮件->端口= 465;
$mail->用户名 = 'xxxxxx@gmail.com';
$mail->Password = '邮件密码';

$mail->SetFrom('xxxxx@gmail.com');
$mail->Subject = '账户激活';
$mail->Body = '测试';
$mail->Body .= '点击这里激活';
$mail->AddAddress("xxxx@gmail.com');
if(!$mail->Send()){
echo '邮件程序错误:'。 $mail->ErrorInfo;
}别的{
echo '消息已发送。';
}
?>

你可以在这个 url 中获取库文件

https://github.com/mktomanikandan/phpmailer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM