ThinkPHP集成PHPMailer发送邮件功能

1、下载phpmailer压缩包

    1) 从 github 上下载:https://github.com/PHPMailer/PHPMailer/

    2) 使用 composer 安装: composer require phpmailer/phpmailer

2、公用方法代码

/**
 * 发送邮件
 * @param string|array $mailto 目标邮箱(发送多目标邮箱时,则该值为数组)
 * @param string $subject 邮件标题
 * @param string $content 邮件正文内容
 * @return bool
 * @throws Exception
 */
function sendEmail($mailto = '', $subject = '', $content = '')
{
    // 实列化PHPMailer,同时传递true表示启用异常机制
    $mail = new PHPMailer(true);
    try {
        // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式,
        // 可选择的值有 1 、 2 、 3
        $mail->SMTPDebug = 0;              // 启用调试
        $mail->isSMTP();                   // 设置mailer使用简单的邮件传输协议
        $mail->Host = 'smtp.163.com';      // SMTP服务器
        $mail->SMTPAuth = true;            // 允许 SMTP 认证
        $mail->Username = 'h001@163.com';  // SMTP 用户名  即邮箱的用户名
        $mail->Password = '******';  // SMTP 密码  部分邮箱是授权码(例如163邮箱)
        $mail->SMTPSecure = 'ssl';         // 允许 TLS 或者ssl协议
        $mail->Port = 465;                 // 服务器端口 25 或者465 具体要看邮箱服务器支持
        $mail->CharSet = 'utf-8';          //设定邮件编码  也可选 GB2312

        //Recipients
        //设置smtp的helo消息头 这个可有可无 内容任意
        // $mail->Helo = 'Hello smtp.qq.com Server';
        //设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名
        // $mail->Hostname = 'http://www.lsgogroup.com';
        $mail->setFrom('h001@163.com', 'H先生');    //发件人信息
        //$mailto 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可
        //判断是否为多目标邮箱
        if(is_array($mailto)){
            //是数组则为多邮箱,则循环调用
            foreach ($mailto as $v){
                $mail->addAddress($v);               // 发送到的目标邮箱
            }
        } else {
            //非数组则只调用一次
            $mail->addAddress($mailto);              // 发送到的目标邮箱
        }
        //$mail->addAddress('ellen@example.com');    // 可添加多个收件人
        //$mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
        //$mail->addCC('cc@example.com');            //抄送
        //$mail->addBCC('bcc@example.com');          //密送
        //发送附件
        //为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
        // $mail->addAttachment('../xy.zip');         // 添加附件
        // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名

        //Content
        $mail->isHTML(true);         // 是否以HTML文档格式发送,发送后客户端可直接显示对应HTML内容
        $mail->Subject = $subject;          // 发送邮箱的标题
        $mail->Body    = $content;          // 发送邮箱的正文
        $mail->AltBody = '您的邮件客户端不支持HTML内容的显示';  //如果邮件客户端不支持HTML则显示此内容

        //发送成功返回 1
        return $mail->send();
    }catch (Exception $e) {
        //exception($mail->ErrorInfo, 1001);
        return -1;
    }
}

//单一目标调用
halt(sendEmail('h001@163.com','测试邮件','<h1>这是邮件内容中的标题</h1><br><a href="https://www.djlog.cn">跳转DjLog博客</a>'));
//多目标调用
halt(sendEmail(['h001@163.com','h002@163.com'],'测试邮件','<h1>这是邮件内容中的标题</h1><br><a href="https://www.djlog.cn">跳转DjLog博客</a>'));

评论

  1. Windows Chrome 86.0.4240.198
    2 年前
    2022-12-09 16:44:53

    感谢分享,以后会常来逛逛的

    • 博主
      九凌网络
      Windows Chrome 108.0.0.0
      2 年前
      2022-12-15 18:55:49

      客气客气

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇