PHPMAILER实现PHP发邮件功能


Posted in PHP onApril 18, 2018

本文实例为大家分享了PHPMAILER实现PHP发邮件功能的具体代码,供大家参考,具体内容如下

第一步:打开网址下载PHPMailer,PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的, PHP 还得包含 openssl 的支持。

PHPMAILER实现PHP发邮件功能

第二步:使用 phpinfo() 函数查看 socket 和 openssl 扩展信息(wamp server 默认启用了该扩展)。

openssl 如果没有开启请打开php.ini文件进行开启

首先检查php.ini中;extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘;', 如果不存在这行,那么添加extension=php_openssl.dll。

PHPMAILER实现PHP发邮件功能

PHPMailer 核心文件

PHPMAILER实现PHP发邮件功能

第三步:QQ 邮箱设置

所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。

第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。

第四步:开启 SMTP 服务

PHPMAILER实现PHP发邮件功能

选择 IMAP/SMTP 服务,点击开启服务

第五步:验证密保

PHPMAILER实现PHP发邮件功能

发送短信“配置邮件客户端”至1069-0700-69

第六步:获取授权码

PHPMAILER实现PHP发邮件功能

SMTP 服务器认证密码,需要妥善保管(PS:密码直接没有空格)

第七步:PHP发送邮件

基本代码

下面的代码演示了 PHPMailer 的使用方法,注意 PHPMailer 实例的配置过程。

// 引入PHPMailer的核心文件
require_once("PHPMailer/class.phpmailer.php");
require_once("PHPMailer/class.smtp.php");
 
// 实例化PHPMailer核心类
$mail = new PHPMailer();
// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
// 使用smtp鉴权方式发送邮件
$mail->isSMTP();
// smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// 链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
// 设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
// 设置ssl连接smtp服务器的远程服务器端口号
$mail->Port = 465;
// 设置发送的邮件的编码
$mail->CharSet = 'UTF-8';
// 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = '发件人昵称';
// smtp登录的账号 QQ邮箱即可
$mail->Username = '12345678@qq.com';
// smtp登录的密码 使用生成的授权码
$mail->Password = '**********';
// 设置发件人邮箱地址 同登录账号
$mail->From = '12345678@qq.com';
// 邮件正文是否为html编码 注意此处是一个方法
$mail->isHTML(true);
// 设置收件人邮箱地址
$mail->addAddress('87654321@qq.com');
// 添加多个收件人 则多次调用方法即可
$mail->addAddress('87654321@163.com');
// 添加该邮件的主题
$mail->Subject = '邮件主题';
// 添加邮件正文
$mail->Body = '<h1>Hello World</h1>';
// 为该邮件添加附件
$mail->addAttachment('./example.pdf');
// 发送邮件 返回状态
$status = $mail->send(); 

我在thinkphp5.0中使用代码

/**
* 邮件发送
* @param $to 接收人
* @param string $subject 邮件标题
* @param string $content 邮件内容(html模板渲染后的内容)
* @throws Exception
* @throws phpmailerException
*/
function send_email($to,$subject='',$content=''){
vendor('phpmailer.PHPMailerAutoload');
//require_once 'vendor/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$arr = db('config')->where('inc_type','smtp')->select();
$config = convert_arr_kv($arr,'name','value');
$mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
//调试输出格式
//$mail->Debugoutput = 'html';
//smtp服务器
$mail->Host = $config['smtp_server'];
//端口 - likely to be 25, 465 or 587
$mail->Port = $config['smtp_port'];
 
 
 
if($mail->Port === 465) $mail->SMTPSecure = 'ssl';// 使用安全协议
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//发送邮箱
$mail->Username = $config['smtp_user'];
//密码
$mail->Password = $config['smtp_pwd'];
//Set who the message is to be sent from
$mail->setFrom($config['smtp_user'],$config['email_id']);
//回复地址
//$mail->addReplyTo('replyto@example.com', 'First Last');
//接收邮件方
if(is_array($to)){
foreach ($to as $v){
$mail->addAddress($v);
}
}else{
$mail->addAddress($to);
}
 
 
 
$mail->isHTML(true);// send as HTML
//标题
$mail->Subject = $subject;
//HTML内容转换
$mail->msgHTML($content);
//Replace the plain text body with one created manually
//$mail->AltBody = 'This is a plain-text message body';
//添加附件
//$mail->addAttachment('images/phpmailer_mini.png');
//send the message, check for errors
return $mail->send();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 小乘法表实现代码
Jul 16 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
PHP设计模式之迭代器模式的深入解析
Jun 13 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 #PHP
php无限级评论嵌套实现代码
Apr 18 #PHP
PHP实现负载均衡下的session共用功能
Apr 17 #PHP
PHP代码重构方法漫谈
Apr 17 #PHP
php微信公众号开发之现金红包
Apr 16 #PHP
PHP闭包定义与使用简单示例
Apr 13 #PHP
PHP简单实现正则匹配省市区的方法
Apr 13 #PHP
You might like
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
document.all与WEB标准
2020/05/13 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Python 正则表达式入门(中级篇)
2016/12/07 Python
详解Python中类的定义与使用
2017/04/11 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
python 变量初始化空列表的例子
2019/11/28 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
教师学习培训邀请函
2014/02/04 职场文书
高中军训感言600字
2014/03/11 职场文书
捐书活动总结
2014/05/04 职场文书
淘宝好评语句大全
2014/12/31 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python