phpmailer问题。无法清除smtp connect()错误

phpmailer问题。无法清除smtp connect()错误,php,email,smtp,phpmailer,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.sm

我正在尝试使用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";
        }

?>

使用
phpmail
中的
ErrorInfo
查看有什么问题

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

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

echo "could not send";


注意事项:

  • 阅读phpmail疑难解答,特别是对话部分 关于
  • 使用phpmailer github repo的官方文件
  • 你可能不得不
  • 你的ip可能被谷歌屏蔽

  • 更新:

    从官方的
    phpmailer
    gmail示例:

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

    你的PHPmailer设置还可以,我认为这是不太安全的应用程序访问问题。 你必须让你的gmail变得不那么安全才能访问。 找到这个网址
    以SMTP方式访问您的gmail。

    错误说明,它无法连接到给定的凭据。587端口有时被主机提供商阻止。这可能就是问题所在。我正在本地主机上尝试。我该怎么办?试试佩德罗写的,已经试过了。还是不走运。请帮助$mail->ErrorInfo;给出smtp connect()失败的错误。我已经允许在gmail上使用不太安全的应用程序了。你是否尝试过使用phpmailer github repo上提供的gmail示例?嘿,佩德罗,在完成了你上次更新中的建议后,我得到了这个输出。。。。我可以在调试过程中读到:“用户名和密码不被接受”,之后,有一个链接到谷歌的答案。你能把它贴在这里作为评论吗。我需要贴什么?你的答案和我的有什么区别吗?@Pedro Lobito我没有看到下面的那句话。对不起that@Jkumar,没关系,没问题,只是想让大家保持干净@JunaidShaikh您能粘贴错误代码或错误消息,以便我们可以帮助JUNAID,将您的上述评论作为您问题的注释。我不在电脑上,所以帮不了什么忙。代码很好。到家后,我会尽力回复。
    $mail->Host = gethostbyname('smtp.gmail.com');
    // if your network does not support SMTP over IPv6