phpmailer发邮件的在服务器端的坑
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
// 应用公共文件
//require 'vendor/autoload.php';
function mailtoQQ($to,$title,$content){
Vendor('PHPMailer.PHPMailerAutoload');
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 0;
$mail->CharSet='utf-8';//这个是解决乱码的问题
$mail->isSMTP();
$mail->Host = 'smtp.qq.com'; //这个是需要到QQ邮箱的账号里自己去开启后可以使用
$mail->SMTPAuth = true;
$mail->Username = 'xxxx@qq.com'; //要发邮件的邮箱
$mail->Password = '密码'; //开启smtp时候会有有生成这个,在网易邮箱是自己设置的
$mail->SMTPSecure = 'tls'; //主要的就是这里在服务器与本地的区别了, 在服务器端这个是不能用 的,
//主要是因为服务器禁用了25端口,阿里云是需要解封25端口才能用,其它服务器不知道是不是开启的,所有不能使用默认的25端口发邮件,所有得使用465端口发邮件,但是得将 $mail->SMTPSecure = 'tls';改为 $mail->SMTPSecure = 'ssl'才行
// $mail->Port = 465;
$mail->setFrom($to, '欢迎注册');
$mail->addAddress($to); // Add a recipient
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = $content;
return $mail->send();
} catch (Exception $e) {
\exception($mail->ErrorInfo,1001);
}
}
这个是封装得一个函数,参数$to是要发送得地址,$title发送得标题,$content发送得内容,
Vendor('PHPMailer.PHPMailerAutoload');这个是tp5中一个自动加载,