PHPMailer 发邮件

xishizhaohua 2019-06-26

在用户注册、找回密码等场景经常使用发邮件的功能,PHPMailer是一个很好的实现方案

1、准备

SMTP主机:smtp.qq.com
SMTP端口:465
SMTP的主机可以从QQ邮箱获取:路径是 设置->帐户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->IMAP/SMTP服务->开启服务
注:这里要获取授权码
PHPMailer 发邮件

2、代码

<?php
// 引入PHPMailer的核心文件
include("./Phpmailer/class.phpmailer.php");
include("./Phpmailer/class.smtp.php");
// 实例化PHPMailer核心类
$mail = new \PHPMailer();
// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
// 使用smtp鉴权方式发送邮件
$mail->isSMTP();
// smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// 链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
// 设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
// 设置ssl连接smtp服务器的远程服务器端口号
$mail->Port = 465;
// 设置发送的邮件的编码
$mail->CharSet = 'UTF-8';
// 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = 'John';
// smtp登录的账号 QQ邮箱即可
$mail->Username = '[email protected]';
// smtp登录的密码 第一步中qq邮箱生成的授权码
$mail->Password = 'xxxx';//从QQ邮箱设置->帐户->smtp->开启获取的授权码,请根据需要获取
// 设置发件人邮箱地址 同登录账号
$mail->From = '[email protected]';
// 邮件正文是否为html编码 注意此处是一个方法
$mail->isHTML(true);
// 添加多个收件人 则多次调用方法即可,这是示例邮箱,正常发送请填写可用的收件箱
$aEmail = [
    '[email protected]',
    '[email protected]',
    '[email protected]'
];
foreach ($aEmail as $addr) {
    // 设置收件人邮箱地址
    $mail->addAddress($addr);
    // 添加该邮件的主题
    $mail->Subject = 'test邮件主题';
    // 添加邮件正文
    $mail->Body = "<h1>send mail to {$addr}</h1>";
    // 为该邮件添加附件
    $mail->addAttachment('./attachment/1.jpg');
    $mail->addAttachment('./attachment/2.jpg');
    $mail->addAttachment('./attachment/3.jpg');
}

// 发送邮件 返回状态
$status = $mail->send();
if ($status) {
    echo "成功";
} else {
    echo "失败";
}

3、引用链接

QQ邮箱:https://mail.qq.com
PHPMailer类库:https://github.com/PHPMailer/...
原文:https://segmentfault.com/a/11...

相关推荐