person

一、安装 composer

composer require phpmailer/phpmailer

安装完成后会在 vendor 目录下看到 phpmailer 文件夹。

二、打开 SMTP 服务(以 QQ 邮箱为例)

点击设置,选择账户:找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服务这一项.

找到 POP3/SMTP 服务,点击开启,即可获得 16 位授权码,将授权码记住,后面会用到。

三、实现代码

use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;

/**
 * 邮件发送,传入邮件接收人和邮件内容
 * @param array $data
 * @return int
 */
function sendEmail($data = [])
{
    $mail = new phpmailer(); //实例化
    try {
        $mail->IsSMTP();  // 启用SMTP
        $mail->Host = 'smtp.qq.com';  // SMTP 服务器,以 qq 邮箱为例子
        $mail->Port = 465;  // 邮件发送端口
        $mail->SMTPAuth = true;  // 启用 SMTP 认证
        $mail->SMTPSecure = "ssl";   // 设置安全验证方式为 ssl
        $mail->CharSet = "UTF-8";  // 字符集
        $mail->Encoding = "base64";  // 编码方式
        $mail->Username = 'edwinpan1995@qq.com';  // 发件人邮箱
        $mail->Password = '************';  // 邮箱授权码是授权码,不是邮箱密码,就是我们航材获取到的授权码
        $mail->Subject = '通信设备巡检管理系统工单通知';  // 邮件标题
        $mail->From = 'edwinpan1995@qq.com';  // 发件人邮箱
        $mail->FromName = '工单管理人员';  // 发件人姓名
        if ($data && is_array($data)) {
            $mail->AddAddress($data['email']);  // 添加收件人
            $mail->IsHTML(true);  // 支持html格式内容
            $mail->Body = $data['content'];  // 邮件主体内容
            if ($mail->Send()) {
                return 1;
            } else {
                return 0;
            }
        }
    }catch (Exception $e){
        die("Message could not be sent. Mailer Error: {$mail->ErrorInfo}");
    }
}

使用的时候,邮件标题等可根据需要改动,需传入收件人的邮箱和邮件内容。

新评论