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 ...
随机推荐
- ubuntu 下抓包
笔记本安装了ubuntu 14.04, 利用笔记本的网卡进行抓包时,需要将网卡配置为monitor模式. (1)关闭无线网卡 sudo ifconfig wlan0 down (2)将无线网卡配置为m ...
- centos7 Firewalld操作集合
=============================================== 2019/4/15_第1次修改 ccb_warlock == ...
- PYTHON-模块定义 搜索路径
模块是什么: ***** 模块 是一系列功能的集合体 一个py文件就是一个模块 一个函数就是一个功能 例如 A.py 文件名A.py 模块名 A 模块有哪些来源 内置 第三方 自定义 模块有四种通用的 ...
- linux 后台运行nohup & ctrl+z
使用Linux时,经常希望有些命令结果不在前台显示,如sh脚本,耗时的命令等.一般情况下,使用 & 将命令结果后台运行,如sh test.sh,脚本后台执行. 有时候命令已经在前台执行了,需要 ...
- BN(Batch Normalization)
Batch Nornalization Question? 1.是什么? 2.有什么用? 3.怎么用? paper:<Batch Normalization: Accelerating Deep ...
- python接口自动化测试十五:解决密码动态,无法登录情况
解决问题:每次密码都是变化的,无法通过账号密码登录 (总不能每次去fiddler复制吧????) 解决思路: 1.先用selenium调用浏览器(不会selenium的自己想办法了), 2.登录后从浏 ...
- review-questions
questions: python字典中items()和iteritems()的区别 items()返回的是列表对象,而iteritems()返回的是迭代器对象 print dic.items() # ...
- 《Kafka技术内幕》学习笔记
第一章 Kafka入门 1.1 Kafka流式数据平台 Kafka作为流式数据平台的特点: 消息系统:两种消息模型:队列和发布订阅. 队列模型:将处理工作平均分给消费组中的消费者成员. 发布订阅模型: ...
- mySQL 增量备份方案
1.在 /etc/my.cnf 下面设置开启bin-log 编辑 vim /etc/my.cnf [mysqld] binlog_format = MIXED ...
- python爬取京东价格
昨天准备爬取一个京东商品的价格,正则写好了一直是空的 后来我去页面里面看了下,价格标签里果然是空的 百度了下,大家都说是js来控制显示价格的 于是去抓包试试,找到了一条mgets的请求 中间很多参数不 ...