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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php开启openssl的方法
May 15 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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
建立动态的WML站点(三)
2006/10/09 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python实现合并两个排序的链表
2019/03/03 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
英语专业个人求职信范文
2014/02/01 职场文书
八年级语文教学反思
2014/02/11 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
写给医院的感谢信
2015/01/22 职场文书
新闻通讯稿模板
2015/07/22 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书