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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
php 动态多文件上传
Jan 18 PHP
第六章 php目录与文件操作
Dec 30 PHP
php实现文件编码批量转换
Mar 10 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
PHP多维数组排序array详解
Nov 21 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
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
Apache2 httpd.conf 中文版
2006/11/17 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
vue表单自定义校验规则介绍
2018/08/28 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
python之PyMongo使用总结
2017/05/26 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
shell程序中如何注释
2012/02/17 面试题
国贸专业毕业求职信
2014/06/11 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
学校标语口号大全
2015/12/26 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
React四级菜单的实现
2022/04/08 Javascript