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创建PDF中文文档
Oct 09 PHP
php下通过POST还是GET来传值
Jun 05 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
php静态文件返回304技巧分享
Jan 06 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
yii分页组件用法实例分析
Dec 28 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 PHP
PHP isset()及empty()用法区别详解
Aug 29 PHP
php redis setnx分布式锁简单原理解析
Oct 23 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
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
php头像上传预览实例代码
2017/05/02 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
房地产销售员的自我评价分享
2013/12/04 职场文书
骨干教师培训制度
2014/01/13 职场文书
双方协议书
2014/04/22 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
今日说法观后感
2015/06/08 职场文书
婚礼家长致辞
2015/07/27 职场文书