我用qq邮箱来做代理服务器,然后本地环境运行正确。但放到云服务器上就连接不上邮件服务器。原来是阿里云禁用了25端品。所以用ssl方式来。配置修改如下 :
$mail = new PHPMailer;
$cfg = $this->config;
$mail->isSMTP();
$mail->Host = $cfg['host'];
$mail->SMTPAuth = true;
$mail->Username = $cfg['username'];
$mail->Password = $cfg['password'];
$mail->CharSet = 'utf-8';
$mail->From = $cfg['username'];
$mail->FromName = $cfg['fromName'];
//其实就是添加了以下两项.
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
//表示打开错误报告
//$mail->SMTPDebug = 2;
参考自下面代码:
<?php
header("Content-Type: text/html; charset=utf-8");
require_once("email.class.php");
/**
* 以腾讯企业邮箱为例子(账户:ceshi@weshineapp.com 密码:j8sssHGAesacqDYdR)
*
* @author pjp
*/
//不使用ssl链接方式发送邮件
$smtpServer="smtp.exmail.qq.com"; //SMTP服务器(一般都是在自己邮箱设置的地方,可看到)
$smtpServerPort="25"; //SMTP服务器端口
$smtpUserMail="ceshi@weshineapp.com"; //SMTP服务器用户邮箱
$mailTo="vippjp@163.com,panjiapeng@weshineapp.com"; //收件人邮箱(多个可以使用逗号隔开,)
$user="ceshi@weshineapp.com"; //SMTP服务器用户邮箱
$mailPwd="j8sssHGAesacqDYdR"; //SMTP服务器用户密码
$mailTitle="邮箱标题";
$mailContent='<h1>测试邮件 001</h1>';
//使用ssl链接方式发送邮件
$smtpServer="ssl://smtp.exmail.qq.com";
$smtpServerPort="465";
$smtpUserMail="ceshi@weshineapp.com";
$mailTo="vippjp@163.com,panjiapeng@weshineapp.com";
$user="ceshi@weshineapp.com";
$mailPwd="j8sssHGAesacqDYdR";
$mailTitle="邮箱标题";
$mailContent='<h1>测试邮件 001</h1>';
// 邮件格式 (HTML/TXT)
$mailType="HTML";
// true表示是否身份验证
$smtp=new \smtp($smtpServer,$smtpServerPort,true,$user,$mailPwd);
// 是否显示调试信息
$smtp->debug=true;
// 返回 bool
$state=$smtp->sendmail($mailTo,$smtpUserMail,$mailTitle,$mailContent,$mailType);
var_dump($state);