今天遇到一个很诡异的现象,之前好好的phpmailer今天突然出bug了,提示Mailer Error: SMTP connect() failed
,比较诡异的是,我在本地,不管是前端请求,还是命令行直接执行,都是正常的,然而在服务器上面,命令行执行可以正常发送,然而在前端请求的时候就出了问题,一直提示如上错误phpmailer
配置:
try {
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = 'smtp.163.com';
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = 'xxx';//这里的信息隐去了,不是账户密码问题
$mail->Password = "xxx";
$mail->From = 'xxx';
$mail->FromName = 'xxx';
$mail->AddAddress($address);
$mail->CharSet = "utf-8";
$mail->Encoding = "base64";
$mail->IsHTML(true);
$mail->Subject = $title;
$mail->Body = $body;
return $mail->Send();
} catch (phpmailerException $e) {
// echo "邮件发送失败:" . $e->errorMessage();
return false;
}
前端控制器是用的最简单的代码测试的,引入helper
执行函数(CI框架)
$this->load->helper('email');
$res = Send('xxx' , 'aa' , 'bb');//xxx是需要发送的邮箱
var_dump($res);
服务器php.ini 开启
extension=php_openssl.dll