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 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
php中的MVC模式运用技巧
May 03 PHP
php str_pad 函数用法简介
Jul 11 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
php TP5框架生成二维码链接
Apr 01 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 项目的方法
2007/01/02 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
Javascript中的数学函数
2007/04/04 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
js实现数字滚动特效
2019/12/16 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python实现探测socket和web服务示例
2014/03/28 Python
Python操作json数据的一个简单例子
2014/04/17 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python实现图片插入文字
2019/11/26 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Python接收手机短信的代码整理
2020/08/02 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
初中班级口号
2014/06/09 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
nginx静态资源的服务器配置方法
2022/07/07 Servers