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 相关文章推荐
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
深入PHP数据缓存的使用说明
May 10 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
html静态页面调用php文件的方法
Nov 13 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
PHP设计模式之命令模式示例详解
Dec 20 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
php查看session内容的函数
2008/08/27 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
React 组件间的通信示例
2018/06/14 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
python批量下载图片的三种方法
2013/04/22 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
一名女生的自荐信
2013/12/08 职场文书
给公司的建议书范文
2014/05/13 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书