phpmailer问题。无法摆脱smtp connect()错误

时间:2016-04-30 11:45:57

标签: php email smtp phpmailer

我正在尝试使用phpmailer发送邮件,但收到此错误“SMTP connect()失败”。我已经允许在Gmail上安全性较低的应用程序。是否所有的smtp设置都正确?请指导我错在哪里。

  <?php

   require_once 'PHPMailer-master/PHPMailerAutoload.php';
  require 'PHPMailer-master/class.phpmailer.php';
   require 'PHPMailer-master/class.smtp.php';

        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true;

        $mail->host = 'smtp.gmail.com';
        $mail->username = 'mymail@gmail.com';
        $mail->password = 'mypassword';
        $mail->SMTPSecure = 'tls';
        $mail->Port = 587;
        $mail->SMTPDebug = true;

        $mail->isHTML();

        $mail->Subject = 'form data';
        $mail->Body = 'this is the body of message';

        $mail->FromName = 'The Form';

        $mail->AddAddress('junaidshekh21@gmail.com','Junaid Shaikh');


        if($mail->send())
        {
            echo "sent successfully";
            die();
        }
        else
        {
            echo "could not send";
        }

?>

2 个答案:

答案 0 :(得分:2)

ErrorInfo中使用phpmail查看错误

在发送电子邮件之前添加此内容

$mail->SMTPDebug  = 2;  //enables SMTP debug information (for testing)

并从

更改
echo "could not send";

echo "Mailer Error: " . $mail->ErrorInfo;

注意:

  1. 阅读phpmail故障排除,特别是谈话的部分 关于"SMTP Error: Could not connect to SMTP host."
  2. 使用phpmailer github repo。
  3. 中的官方gmail example
  4. 您可能需要allow less secure apps to access your gmail account
  5. 您的IP可能被谷歌阻止。
  6. <强>更新

    来自官方phpmailer gmail示例:

    $mail->Host = gethostbyname('smtp.gmail.com');
    // if your network does not support SMTP over IPv6
    

答案 1 :(得分:1)

您的PHPmailer设置还可以,我认为这是一个不太安全的应用访问问题。 你必须使你的Gmail不那么安全才能获得访问权限。 得到了这个网址https://www.google.com/settings/security/lesssecureapps 以SMTP格式访问您的Gmail。