Google SMTP错误:无法对

时间:2016-02-05 22:11:19

标签: php smtp phpmailer

下面的代码一旦我把它放在服务器上就不起作用了,我有类似的代码在我的本地环境中工作,它运行得很好,有什么想法吗?

编辑:我确实将我的Gmail设置设置为“不太安全”

<?php
$setid = $_POST['setid'];
$promo = $_POST['promo'];


echo "Good Sir, your set ID is ".$setid.", and you are eligible for the following deal:";
echo "<br><br>";
echo $promo;

$message=  "Good Sir, your set ID is ".$setid.", and you are eligible for the following deal:"."<br><br>".$promo;

    require "phpmailer/class.phpmailer.php";

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

    // Set up SMTP  
    $mail->IsSMTP();               
    $mail->SMTPAuth = true;         
    $mail->SMTPSecure = "ssl"; 
    $mail->Host = "smtp.gmail.com"; 
    $mail->Port = 465; 
    $mail->Encoding = '7bit';

    // Authentication  
    $mail->Username   = "xxx@example.com";
    $mail->Password   = "mypass";

    // Compose
    $mail->SetFrom("jghh@ghh.ca");
    $mail->AddReplyTo("ghh@ghh.ca");
    $mail->Subject = "TryIt";
    $mail->MsgHTML($message);

    // Send To  
    $mail->AddAddress("receiver@hotmail.com", "Recipient Name");
    $result = $mail->Send();
    $message = $result ? 'Successfully Sent!' : 'Sending Failed!';     

    unset($mail);



?>

这就是我在网络中获得的 - &gt;预览:

好先生,您的设置ID为100065,您有资格享受以下优惠:

当前促销:下次访问可享受15%的折扣!SMTP错误:无法进行身份验证。

1 个答案:

答案 0 :(得分:1)

您可能需要启用less secure apps

  

更改安全性较低的应用的帐户访问权限

     

为了确保Google Apps用户的帐户安全,我们可能会减少阻止   保护应用访问Google Apps帐户。作为Google Apps   用户,尝试签名时会看到“密码不正确”错误   如果是这种情况,您有两种选择:

     
      
  1. 选项1:升级到使用最新版本的更安全的应用   安防措施。所有Google产品(如Gmail)都使用最新产品   安全措施。
  2.   
  3. 选项2:更改您的设置以允许访问安全性较低的应用   你的帐户。我们不推荐这个选项,因为它可能会   有人可以更容易地侵入您的帐户。如果你想   无论如何都允许访问,请按照以下步骤操作:

         

    2.1。转到“我的帐户”中的“Less secure apps”部分

         

    2.2。在“访问安全性较低的应用”旁边,选择启用。 (注意   Google Apps用户:如果您的管理员已锁定不太安全的应用帐户访问权限,则会隐藏此设置。)

  4.         

    如果您仍然无法登录自己的帐户,则“password incorrect”错误可能是由其他原因造成的。

SRC:https://support.google.com/accounts/answer/6010255?hl=en

<强>更新

在打开PHP标记之后立即将错误报告添加到文件顶部,例如scipy

并在PHPMAILER上启用调试

<?php error_reporting(E_ALL); ini_set('display_errors', 1);

看它是否会产生任何结果。