前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >thinkphp5使用PHPMailer发送邮件

thinkphp5使用PHPMailer发送邮件

作者头像
申霖
发布2019-12-27 17:42:05
1.3K0
发布2019-12-27 17:42:05
举报
文章被收录于专栏:小白程序猿小白程序猿

PHPMailer是一个用于发送电子邮件的PHP函数包。直接用PHP就可以发送,无需搭建复杂的Email服务。今天来说一下如何在thinkphp框架中使用此扩展类。

一、功能描述

*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址

*.支持多种邮件编码包括:8bit,base64,binary和quoted-printable

*.支持SMTP验证

*.支持冗余SMTP服务器

*.支持带附件的邮件和Html格式的邮件

*.自定义邮件头

*.支持在邮件中嵌入图片

*.调试灵活

*.经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等

*.可运行在任何平台之上

二、下载安装

本人通过composer进行安装,在已安装好的tihnkphp框架内public同级目录下右键使用git(Git安装),复制如下命令并回车:

代码语言:javascript
复制
composer require phpmailer/phpmailer

效果如下:

composer会自行下载,并配置compoer.json文件,待完成后可在vendor目录下查看。如下图:

三、使用

使用方式如下:

代码语言:javascript
复制
<?php
/**
 * Created by PhpStorm.
 * User: shenlin
 * Date: 2019/4/21
 * Time: 11:01
 */
namespace app\index\controller;
use think\Controller;
use PHPMailer\PHPMailer\PHPMailer;

class Email extends Controller
{
    public function index()
    {
        $mail = new PHPMailer(); //实例化
        $mail->IsSMTP(); // 启用SMTP
        $mail->Host='smtp.163.com'; //smtp服务器的名称(这里以QQ邮箱为例)
        $mail->SMTPAuth = TRUE; //启用smtp认证
        $mail->Username ='*****'; //你的邮箱名
        $mail->Password = '*****' ; //邮箱密码
        $mail->From = '****'; //发件人地址(也就是你的邮箱地址)
        $mail->FromName = '***管理员'; //发件人姓名
        $mail->AddAddress('*****@qq.com',"******");
        $mail->WordWrap = 50; //设置每行字符长度
        $mail->IsHTML(TRUE); // 是否HTML格式邮件
        $mail->CharSet='utf-8'; //设置邮件编码
        $mail->Subject ='*******'; //邮件主题
        $mail->Body = '********'; //邮件内容
        $mail->AltBody = ""; //邮件正文不支持HTML的备用显示

        $res =  $mail->Send();
        return $res;
    }
}

四、注意事项

1、添加多个收件人:

代码语言:javascript
复制
$mail->addAddress('ellen@example.com');

2、抄送 

代码语言:javascript
复制
$mail->addCC('cc@example.com');

3、密送 

代码语言:javascript
复制
$mail->addBCC('bcc@example.com');

4、发送附件

代码语言:javascript
复制
 $mail->addAttachment('../xy.zip');

5、发送附件并且重命名

代码语言:javascript
复制
$mail->addAttachment('../thumb-1.jpg', 'new.jpg');

6、查看错误信息

代码语言:javascript
复制
$mail->ErrorInfo

7、解决非标题汉字乱码

在PHPMailer 库文件class.phpmailer.php中, 找到 public $CharSet = 'iso-8859-1'; 改成 public $CharSet = 'UTF-8'; 并且 把文件保存为UTF-8格式。

8、解决标题汉字乱码

代码语言:javascript
复制
$mail->Subject ="=?utf-8?B?" . base64_encode(" 你的标题内容 ") . "?=";
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档