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 相关文章推荐
drupal 代码实现URL重写
May 04 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php获取服务器信息的实现代码
Feb 04 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
golang与PHP输出excel示例
Jul 22 PHP
php、java、android、ios通用的3des方法(推荐)
Sep 09 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 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/11/26 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
JavaScript闭包实例讲解
2014/04/22 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
js判断节假日实例代码
2017/12/27 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
机器学习python实战之决策树
2017/11/01 Python
python的Tqdm模块的使用
2018/01/10 Python
python实现简单名片管理系统
2018/11/30 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python