PHPMailer 使用方法(支持群发):
一、下载函数包
地址:https://github.com/PHPMailer/PHPMailer
二、测试服务器环境
通过phpinfo()函数打印出是否支持Sockets(Socket属于php的扩展部分),如果为“enable”表示环境支持。
三、解压提取文件
解压下载的PHPMailer-master.zip包,提取出以下几个文件
class.phpmailer.php
class.pop3.php
class.smtp.php
PHPMailerAutoload.php
四、编写发送邮件demo,可以提取为工具类
详细代码如下:
public function sendMail(){
require_once (VENDOR_PATH."PHPMailer/PHPMailerAutoload.php");
$mail = new \PHPMailer; // 创建一个PHPMailer实例
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->CharSet ="UTF-8"; // 设置编码,否则发送中文乱码
$mail->Host = "smtp.qq.com"; // 需要发送邮件的主机IP,以下为QQ主机服务器
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "xxxxxxxxx@qq.com"; // 发件人邮箱账号
$mail->Password = "xxxxxxxxxx"; // 发件人邮箱密码,qq邮箱生成的授权码,qq邮箱需要开启IMAP/SMTP服务
$mail->setFrom('xxxxxxxxxx@qq.com', '发件人名称'); // 设置发送人信息(参数1:发送人邮箱,参数2:发送人名称)
$mail->addAddress('xxxxxxxxx@qq.com', '收件人名称'); // 收件人邮箱----注意如果是群发,改点for循环添加收件人邮箱
$mail->Subject = '子衿'; // 邮件主题,即标题
$mail->Body = '青青子佩,悠悠我思,纵我不往,子宁不来。挑兮达兮,在城阙兮,一日不见,如三月兮。'; //邮件内容
$mail->AltBody = '邮件附件信息'; // 邮件附件信息,可以省略
$mail->WordWrap = 50; // 换行,每行超过多少字符自动换行
//$mail->isHTML(true); // 是否发送html
if (!$mail->send()) { // 发送邮件
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "发送成功!";
}
建议采用HTML格式发送内容。可以使用“<br \>”换行符进行换行注意:如果以text格式开发送邮件,“\n”、"\r\n" 换行符都不生效,只有设置WordWrap规定每行字符数
PHPMailer 使用方法(支持群发):的更多相关文章
- String的split方法支持正则表达式
String的split方法支持正则表达式: 1. 正则表达式\s表示匹配任何空白字符 2. +表示匹配一次或多次
- 论DATASNAP远程方法支持自定义对象作参数
论DATASNAP远程方法支持自定义对象作参数 DATASNAP远程方法已经可以支持自定义对象作参数,这是非常方便的功能. 1)自定义对象 type TMyInfo = class(TObject) ...
- datasnap远程方法支持自定义对象传参
有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATAS ...
- 在.vue文件中让html代码自动补全的方法(支持vscode)
在.vue文件中让html代码自动补全的方法(支持vscode) https://blog.csdn.net/qq_36529459/article/details/79196763 "fi ...
- 为Promise添加finally方法支持,把小程序函数变成promise函数
// 为Promise添加finally方法支持 Promise.prototype.finally = function (callback) { let P = this.constructo ...
- 为jQuery添加Webkit的触摸方法支持
前些日子收到邮件,之前兼职的一个项目被转给了其他人,跟进的人来问我相关代码的版权问题. 我就呵呵了. 这段代码是我在做13年一份兼职的时候无聊加上去的,为jQuery添加触摸事件的支持.因为做得有点无 ...
- PHPMailer发送邮件方法
/** * * 测试邮件发送s * @param 服务器 $Host * @param 端口 $Port * @param 昵称 $Fromname * @param 身份验证用户名 $Usernam ...
- 为IE8添加EventListener系列方法支持
在低版本IE中添加DOM元素事件可以使用attachEvent方法.但是用它模拟addEventListner还要解决一些问题.主动触发事件的API设计逻辑不同,需要处理的地方比较多.fireEven ...
- 写一个针对IQueryable<T>的扩展方法支持动态排序
所谓的动态排序是指支持任意字段.任意升序降序的排序.我们希望在客户端按如下格式写: localhost:8000/api/items?sort=titlelocalhost:8000/api/item ...
随机推荐
- ASP.NET Core Identity 实战(3)认证过程
如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆,那么你一定会疑惑 认证这个名词,这太正式了,这到底代表这什么? 获取资源之前得先过两道关卡Authentica ...
- exp自动备份在bat中不执行
在命令行前加cd c:\users\...... 先定位进入可以exp的目录下,再执行exp
- layui上传文件配合进度条
首先看一下效果图: 修改layui的源文件upload.js 1.打开layui/modules/upload.js 2.搜索ajax 3.找到url: 4.添加以下代码: ,xhr:l.xhr(fu ...
- linux 创建用户和密码
:useradd -m 用户名//添加用户 :passwd 用户名 //然后设置密码 :userdel -r newuser1 //删除用户 newuser1,同时删除其自家目录 samba 设置账号 ...
- 性能测试二:jmeter参数化+聚合报告
一.参数化 1.随机数 2.随机字符串 二.文件 1.文本,csv_read (此方式同一个并发,永远只取一行数据,同一个并发,永远只使用同一个账户,如购物车下单) 2.CSV Data Set Co ...
- scanf的一个问题(暂未解决)
如下代码,没有按照预想的那样运行: int a; char b; printf("input a integer\n"); scanf("%d", &a ...
- Asp.NetWebForm的控件属性
一:GridView: 1.绑定ID 的值:DataKeyNames="Id", 2.自动产生列的意思:AutoGenerateColumns 3.如何注册脚本:ClientScr ...
- mysql批量插入数据优化
一.问题 很早以前做了一个更新功能,就是将A表中的数据全部查找出来,相对B表中改变的数据更新B表,B表中没有的数据插入B表. 最近发现该功能执行速率减慢,有时还跑超时.原来是A表中数据渐渐变多,就有了 ...
- Rstudio+mysql写入中文表
1.在mysql中输入sql语句,新建一个支持中文的数据库 create database Chinadaydata DEFAULT CHARACTER SET gbk COLLATE gbk_chi ...
- 《Java并发编程的艺术》--Java中的锁
No1: Lock接口 Lock lock = new ReentrantLock(); lock.lock(); try{ }finally{ lock.unlock(); } No2: 不要讲获取 ...