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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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使用curl存储cookie的示例
2014/03/31 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php导出生成word的方法
2015/12/25 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
PHP实现百度人脸识别
2019/05/06 PHP
JS实现可改变列宽的table实例
2013/07/02 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
珍珠奶茶店创业计划书
2014/01/11 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
乔迁新居祝福语
2019/11/04 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python