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 相关文章推荐
php5.2.0内存管理改进
Jan 22 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
PHP生成条形图的方法
Dec 10 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
php+js实现点赞功能的示例详解
Aug 07 PHP
php实现简单四则运算器
Nov 29 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Python入门篇之字典
2014/10/17 Python
python字典DICT类型合并详解
2017/08/17 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
美国滑板店:Tactics
2020/11/08 全球购物
生产部经理岗位职责
2013/12/16 职场文书
生产部岗位职责范文
2014/02/07 职场文书
绩效工资实施方案
2014/03/15 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
求职自我评价范文100字
2014/09/23 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android