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 相关文章推荐
深入了解php4(2)--重访过去
Oct 09 PHP
PHP与C#分别格式化文件大小的代码
May 14 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
PHP分页类集锦
Nov 18 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
php实现的一段简单概率相关代码
May 30 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
laravel使用redis队列实例讲解
Mar 23 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
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
vue中改变滚动条样式的方法
2020/03/03 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
元旦趣味活动方案
2014/08/22 职场文书
银行奉献演讲稿
2014/09/16 职场文书
质量整改报告范文
2014/11/08 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python