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 MSSQL 存储过程的方法
Dec 24 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
php限制ip地址范围的方法
Mar 31 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
php支付宝APP支付功能
Jul 29 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 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基础知识:函数基础知识
2006/12/13 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Vue实现web分页组件详解
2017/11/28 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python 多线程Threading初学教程
2017/08/22 Python
Python numpy 常用函数总结
2017/12/07 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
计算机求职信
2013/12/01 职场文书
学生思想表现的评语
2014/01/30 职场文书
实验室的标语
2014/06/20 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技