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下一个非常全面获取图象信息的函数
Nov 20 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
php中JSON的使用与转换
Jan 14 PHP
全面了解PHP中的全局变量
Jun 17 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
YII2.0框架行为(Behavior)深入详解
Jul 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
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
Python中的字符串替换操作示例
2016/06/27 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python实现淘宝购物系统
2019/10/25 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
文明城市标语
2014/06/16 职场文书
安全施工责任书
2014/08/25 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
Redis 异步机制
2022/05/15 Redis