SMTP错误:无法连接到服务器:(0)SMTP连接()失败

时间:2017-05-25 08:32:25

标签: php email phpmailer php-openssl

我正在尝试使用Mailer发送电子邮件,但收到以下错误

  

连接:打开2017-05-25 08:22:07 SMTP错误:连接失败   到服务器:(0)SMTP连接()失败。邮件程序错误:SMTP连接()   失败。

php_openssl扩展& IMAP都已启用。我试图在谷歌上找到它,但仍然没有运气。

代码:

function sendMail($subject='',$to='',$emailcontent='',$attach='')
{
    global $_mailmsg;
    //echo $emailcontent;exit;
    $mail = new PHPMailer;
    $mail->SMTPDebug = 4;
    $mail->isSMTP();                                    
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = '465';
    $mail->SMTPAuth = true;                               
    $mail->Username = 'xx@gmail.com';                            
    $mail->Password = 'xxxx';                           
    $mail->SMTPSecure = 'ssl';                                  
    $mail->From = 'xx@gmail.com';
    $mail->FromName = 'Test';
    $mail->addAddress($to);  // Add a recipient
    if(!empty($cc)){    $mail->addCC($cc); }
    if(!empty($bcc)){   $mail->addBCC($bcc);    }

    $mail->WordWrap = 50;                                 
    if($attach != ''){
        $mail->addAttachment($attach);    
    }
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');   
    $mail->isHTML(true);                                  
    $mail->Subject = $subject;
    $mail->Body    = 'Test';
    try
    {
        if($mail->send()) {
            return 1;
           exit;
        }
        else
        {
            echo 'Mailer Error: ' . $mail->ErrorInfo;
            return 0;
        }
    }
    catch(Exception $e)
    {
        return 0;   
    }
}

2 个答案:

答案 0 :(得分:0)

这似乎不允许您的服务器连接到远程SMTP服务器,这在GoDaddy这样的大型ISP中很常见。如果您执行the troubleshooting guide中描述的步骤,您可以找出阻止您的内容。您的错误消息中没有指南链接的事实告诉我您使用的是非常旧版本的PHPMailer,因此get the latest

PHPMailer与IMAP无关;仅限入站邮件。

答案 1 :(得分:0)

使用Gmail时,只需打开“允许安全程度较低的应用”:

https://myaccount.google.com/u/0/lesssecureapps

而且您可能还需要允许在不解锁验证码的情况下访问您的Google帐户:

https://accounts.google.com/DisplayUnlockCaptcha