PHP网站配置发送邮件,总是超时怎么解决

今天遇到一个很烦人的问题:网站配置发送邮件,总是超时。

问题原因可能各有不同,这篇文章主要是说一下我遇到的这个问题。

邮件服务器正确,地址正确,密码正确。所有能想到的都是正确。。。。。。


重点来了,现在各大邮件厂家都是支持加密协议,默认发信通信端口为465,我也是一直按照465配置的,三四个小时还是无法判断问题出在哪里。

突发奇想,将465端口改为25端口,竟然神奇的成功了。。。


1.phpmailer这个问题解决比较简单:

function sendMail($to, $title, $content)
{
    Vendor('PHPMailer.PHPMailerAutoload');
    $mail = new PHPMailer(); //实例化
    $mail->IsSMTP(); // 启用SMTP
    $mail->Host = C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
    $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
    $mail->Username = C('MAIL_USERNAME'); //你的邮箱名
    $mail->Password = C('MAIL_PASSWORD'); //邮箱密码
    $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
    $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
    $mail->AddAddress($to, "尊敬的客户");
    $mail->WordWrap = 50; //设置每行字符长度
    $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
    $mail->CharSet = C('MAIL_CHARSET'); //设置邮件编码
    $mail->Subject = $title; //邮件主题
    $mail->Body = $content; //邮件内容
    $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    $mail->Port = 465;
    $mail->SMTPSecure = "ssl"; //不能少,ssl加密传输
     
    print_r($mail->ErrorInfo);
    return ($mail->Send());
}

附上phpmailer下载地址:github 上下载: https://github.com/PHPMailer/PHPMailer/


2.自己手写

举例:qq企业邮箱

(1)如果使用25端口

SMTP服务器地址:smtp.exmail.qq.com

端口:25

(2)如果使用465端口

SMTP服务器地址:ssl://smtp.exmail.qq.com

端口:465

“ssl://” 在服务器地址添加之后,完美解决问题,网站用ssl端口465发送邮件成功!!!