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&amp;&amp;mysql)四
Oct 09 PHP
PHP 中文乱码解决办法总结分析
Jul 30 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
php使用反射插入对象示例分享
Mar 11 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
php探针不显示内存解决方法
Sep 17 PHP
php实现session共享的实例方法
Sep 19 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
基于python时间处理方法(详解)
2017/08/14 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
Windows下安装Scrapy
2018/10/17 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
制定岗位职责的原则
2013/11/08 职场文书
数控专业推荐信范文
2013/12/02 职场文书
《悯农》教学反思
2014/04/28 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
企业年检委托书范本
2014/10/14 职场文书
初中军训感言
2015/08/01 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
HDFS免重启挂载新磁盘
2022/04/06 Servers