PHP:ThinkPHP使用PHPMailer发送html邮件

简介: PHP:ThinkPHP使用PHPMailer发送html邮件

安装


composer require phpmailer/phpmailer

代码示例


配置文件 config/mail.php


<?php
// +----------------------------------------------------------------------
// | 邮件系统配置
// +----------------------------------------------------------------------
return [
    'MAIL_HOST'      => 'smtp.163.com',
    'MAIL_PORT'      => 465,
    'MAIL_USERNAME'  => 'xxx@163.com',
    'MAIL_PASSWORD'  => 'xxxxxx',
    'MAIL_FROM_NAME' => '山中无老虎',
];
<?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();
    }
}

测试


<?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']);
    }
}

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

PHP:ThinkPHP使用Twig渲染html

相关文章
|
7月前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
3月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
4月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
44 2
|
4月前
|
数据采集 JavaScript 数据挖掘
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
本文介绍了使用PHP Simple HTML DOM Parser进行网页数据抓取的方法,尤其适用于从懂车帝二手车网站提取汽车品牌、价格和里程等关键信息。首先,安装并配置所需库,使用代理IP和设置cookie与useragent来模拟用户行为,避免被封。然后,通过编写PHP脚本,利用cURL获取网页内容,解析HTML并提取所需数据,最终将数据保存至CSV文件。文章强调了正确配置代理和用户代理的重要性,并提供了完整的PHP代码示例,以帮助读者理解和应用网页抓取技术。
如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据
|
5月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
235 1
|
4月前
|
PHP
PHP——安装ThinkPHP框架报错
PHP——安装ThinkPHP框架报错
57 0
|
5月前
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
178 1
|
5月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之代码域如何管理上传的PHP和HTML代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
安全 前端开发 API
PHP框架详解 - ThinkPHP框架
PHP框架详解 - ThinkPHP框架
|
5月前
|
API PHP 开发者
​邮件发送API示例代码,AOKSend关于PHP示例代码
**邮件发送API简化了开发中的邮件功能,如自动化通知和营销邮件。常见示例包括SendGrid和Mailgun的Python代码。AOKSend在PHP中的使用示例展示了如何使用Guzzle库发送邮件,其特点包括高可靠性、易于集成和强大功能。通过API,开发者能高效、可靠地发送大规模邮件。**