PHP实现SMTP邮件的发送实例


Posted in PHP onSeptember 27, 2018

当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你!

php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。

smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行简单的配置就能发邮件,是不是很期待的试一试呢!

<?php
 
/**
 * @param $address mixed 收件人 多个收件人/或需要设置收件人昵称时为数组 array($address1,$address1)/array(array('address'=>$address1,'nickname'=>$nickname1),array('address'=>$address2,'nickname'=>$nickname2))
 * @param $subject string 邮件主题
 * @param $body string 邮件内容
 * @param $file string 附件
 * @return bool|string 发送成功返回true 反之返回报错信息
 * @throws Exception
 */
function send_mail_by_smtp($address, $subject, $body, $file = '')
{
 require('./PHPMailer-master/Exception.php');
 require('./PHPMailer-master/PHPMailer.php');
 require('./PHPMailer-master/SMTP.php');
 
 //date_default_timezone_set("Asia/Shanghai");//设定时区东八区
 
 $mail = new PHPMailer();
 
 //Server settings
 $mail->SMTPDebug = 2;
 $mail->isSMTP();     // 使用SMTP方式发送
 $mail->Host = 'smtp.126.com';    // SMTP邮箱域名
 $mail->SMTPAuth = true;    // 启用SMTP验证功能
 $mail->Username = "*****@126.com";   // 邮箱用户名(完整email地址)
 $mail->Password = "*****";    // smtp授权码,非邮箱登录密码
 $mail->Port = 25;
 $mail->CharSet = "utf-8";    //设置字符集编码 "GB2312"
 
 // 设置发件人信息,显示为 你看我那里像好人(xxxx@126.com)
 $mail->setFrom($mail->Username, '你看我那里像好人');
 
 //设置收件人 参数1为收件人邮箱 参数2为该收件人设置的昵称 添加多个收件人 多次调用即可
 //$mail->addAddress('********@163.com', '你看我那里像好人');
 
 if (is_array($address)) {
 foreach ($address as $item) {
 if (is_array($item)) {
 $mail->addAddress($item['address'], $item['nickname']);
 } else {
 $mail->addAddress($item);
 }
 }
 } else {
 $mail->addAddress($address, 'adsf');
 }
 
 
 //设置回复人 参数1为回复人邮箱 参数2为该回复人设置的昵称
 //$mail->addReplyTo('*****@126.com', 'Information');
 
 if ($file !== '') $mail->AddAttachment($file); // 添加附件
 
 $mail->isHTML(true); //邮件正文是否为html编码 true或false
 $mail->Subject = $subject; //邮件主题
 $mail->Body = $body;  //邮件正文 若isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取的html文件
 //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息,可以省略
 
 return $mail->Send() ? true : 'ErrorInfo:' . $mail->ErrorInfo;
}
 
$path = '.\wpic907.jpg';
$ret = send_mail_by_smtp('*******@163.com', 'PHPMailer邮件标题', 'PHPMailer邮件内容', $path);
PHP 相关文章推荐
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
php获取url参数方法总结
Nov 13 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 #PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 #PHP
多个Laravel项目如何共用migrations详解
Sep 25 #PHP
php中上传文件的的解决方案
Sep 25 #PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 #PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 #PHP
详解php协程知识点
Sep 21 #PHP
You might like
博士208HAF收音机实习报告
2021/03/02 无线电
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
php按百分比生成缩略图的代码分享
2014/05/10 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
一个实用的php验证码类
2017/07/06 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python开发的实用计算器完整实例
2017/05/10 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python pickle模块实现对象序列化
2019/11/22 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
会计助理岗位职责
2014/02/17 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
让子弹飞观后感
2015/06/11 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python