PHP:ThinkPHP使用PHPMailer发送html邮件

举报
彭世瑜 发表于 2021/11/30 23:58:51 2021/11/30
【摘要】 文档 https://github.com/PHPMailer/PHPMailer 安装 composer require phpmailer/phpmailer 1 代码示例 配置文件 con...

文档

安装

composer require phpmailer/phpmailer

  
 
  • 1

代码示例

配置文件 config/mail.php

<?php
// +----------------------------------------------------------------------
// | 邮件系统配置
// +----------------------------------------------------------------------

return [
    'MAIL_HOST'      => 'smtp.163.com',
    'MAIL_PORT'      => 465,
    'MAIL_USERNAME'  => 'xxx@163.com',
    'MAIL_PASSWORD'  => 'xxxxxx',
    'MAIL_FROM_NAME' => '山中无老虎',
];


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
<?php

namespace app\service;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

class MailService
{
    public static function send($subject, $body, array $address_list = [])
    {
        $mail = new PHPMailer(true);

        //服务器配置
        $mail->CharSet   = "UTF-8";   //设定邮件编码
        $mail->SMTPDebug = SMTP::DEBUG_OFF; // 调试模式输出
        $mail->isSMTP();                 // 使用SMTP
        // SMTP服务器
        $mail->Host = config('mail.MAIL_HOST');
        // 服务器端口 25 或者465 具体要看邮箱服务器支持
        $mail->Port       = config('mail.MAIL_PORT');
        $mail->SMTPAuth   = true;  // 允许 SMTP 认证
        $mail->Username   = config('mail.MAIL_USERNAME');  // SMTP 用户名  即邮箱的用户名
        $mail->Password   = config('mail.MAIL_PASSWORD');  // SMTP 密码  部分邮箱是授权码(例如163邮箱)
        $mail->SMTPSecure = 'ssl';  // 允许 TLS 或者ssl协议


        //发件人
        $mail->setFrom(config('mail.MAIL_USERNAME'), config('mail.MAIL_FROM_NAME'));

        // 收件人
        foreach ($address_list as $address) {
            $mail->addAddress($address);
        }

        //Content
        $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
        $mail->Subject = $subject;
        $mail->Body    = $body;

        $mail->send();
    }

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

测试

<?php


require_once __DIR__ . '/../../vendor/autoload.php';

((new \think\App())->http)->run();


use app\service\MailService;
use PHPUnit\Framework\TestCase;


class MailServiceTest extends TestCase
{
    /**
     * @doesNotPerformAssertions
     */
    public function testSend()
    {
        MailService::send('标题', '内容', ['xxx@qq.com']);
    }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

如果需要发送内容更丰富的html,可以引入模板引擎去渲染邮件内容
PHP:ThinkPHP使用Twig渲染html

参考
PHP 使用 phpmailer 发送电子邮件

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/121638108

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200