phpmailer从任何Gmail发送电子邮件

时间:2017-01-08 04:19:02

标签: php email smtp phpmailer send

我使用phpmailer类使用以下代码片段,以便在我的Web应用程序中提交表单时使用gmail服务器发送电子邮件!虽然它适用于我的个人邮件地址,但当我用我的客户端gmail地址和密码替换我的Gmail地址和密码时,它不会发送电子邮件!

我如何更正此探测?

require "phpmailer/class.phpmailer.php"; //include phpmailer class

// Instantiate Class  
$mail = new PHPMailer();  

// Set up SMTP  
$mail->IsSMTP();                // Sets up a SMTP connection  
$mail->SMTPAuth = true;         // Connection with the SMTP does require authorization    
$mail->SMTPSecure = "ssl";      // Connect using a TLS connection  
$mail->Host = "smtp.gmail.com";  //Gmail SMTP server address
$mail->Port = 465;  //Gmail SMTP port
$mail->Encoding = '7bit';

// Authentication  
$mail->Username   = "sunethperera@gmail.com"; // Your full Gmail address
$mail->Password   = "******"; // Your Gmail password

// Compose
$mail->SetFrom($_POST['emailid'], $_POST['fullname']);
$mail->AddReplyTo($_POST['emailid'], $_POST['fullname']);
$mail->Subject = "Pharmacy order confirmaton";      // Subject (which isn't required)  
$mail->MsgHTML($message);

// Send To  
$mail->AddAddress($_POST["Email"], "Recipient Name"); // Where to send it - Recipient
$result = $mail->Send();        // Send!  
$message = $result ? 'Successfully Sent!' : 'Sending Failed!';      
unset($mail);

当我从客户的电子邮件发送邮件时,收到错误消息:

  

SMTP错误:无法进行身份验证。

如何更正此问题?

2 个答案:

答案 0 :(得分:0)

尝试使用此: $mail->SMTPSecure = "tls";

删除编码参数

并检查您是否也有正确的发件人地址和密码。

答案 1 :(得分:-1)

立即更新您的PHPMailer。您正在运行旧的易受攻击的版本。阅读故障排除指南并按照说明进行操作。不要使用提交者的地址作为来自地址 - 伪造,并且会使您无法通过SPF检查。 Gmail不允许您从任意地址发送邮件。本指南中介绍了您的身份验证问题,但您需要在Gmail中启用安全性较低的应用,或者实施oauth,如文档和示例中所述。

在你发布之前,已经多次覆盖SO - 搜索。