PHP:ThinkPHP使用PHPMailer发送html邮件
2021/11/30 17:36:15
本文主要是介绍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
参考
PHP 使用 phpmailer 发送电子邮件
这篇关于PHP:ThinkPHP使用PHPMailer发送html邮件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享