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实现mysql数据库备份类
Mar 20 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
PHP之数组学习
May 29 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
php多重接口的实现方法
Jun 20 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
PHP7新特性
Mar 09 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
php简单实现数组分页的方法
2016/04/30 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
jQuery中:button选择器用法实例
2015/01/04 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python代码实现KNN算法
2017/12/20 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python 中xpath爬虫实例详解
2019/08/26 Python
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
2014年扫黄打非工作总结
2014/12/03 职场文书
2015年领班工作总结
2015/04/29 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js
vue使用element-ui按需引入
2022/05/20 Vue.js