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使用百度ping服务代码实例
Jun 19 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP加密解密实例分析
Dec 25 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP实现字母数字混合验证码功能
Jul 11 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/03/27 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
Javascript实现的分页函数
2006/12/22 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python @classmethod 的使用场合详解
2019/08/23 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
python获取栅格点和面值的实现
2020/03/10 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
干部作风建设工作总结
2014/10/29 职场文书
城管个人总结
2015/02/28 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
大学入学感言
2015/08/01 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python