thinkphp实现163、QQ邮箱收发邮件的方法


Posted in PHP onDecember 18, 2015

用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家。

在进入正题这前先看下网易(163)邮箱的服务器地址和端口号:

thinkphp实现163、QQ邮箱收发邮件的方法

一、前期准备

使用网易邮箱,当然要注册个账号,这个就不用我多说了,自己去注册。。。

注册完之后,就要去开启 POP3/SMTP/IMAP服务。 在开启服务时,需要客户端授权密码(这里需要手机验证,MD拐弯抹角的要手机号码)。

步骤一:

thinkphp实现163、QQ邮箱收发邮件的方法

步骤二:

thinkphp实现163、QQ邮箱收发邮件的方法

确定后会弹出下面这样的对话框,也会把这个授权密码发送你的短信里,记住这个授权密码一定要记住

thinkphp实现163、QQ邮箱收发邮件的方法

服务开启后,如果没有设置【姓名】,在写邮件发送时会提示设置【姓名】后才能发送邮件,当然也可以提前设置好。。

thinkphp实现163、QQ邮箱收发邮件的方法

二、代码部分

PHPMailer下载 ( 下载后把PHPMailer放在Vendor目录下,另外文件中有很多不必要的东西,自己看着处理吧)

细心的同学在 class.phpmailer.php  class.pop3.php  class.smtp.php 这三个文件里看下默认的端口号,其SMTP的默认端口号是25 与 163下的SMTP发件服务器的非SSL协议端口号一样。

html布局:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <form action="__URL__/add" method="post" enctype="multipart/form-data">
 收件人邮箱:<input type="text" name="mail"/>
 标题:<input type="text" name="title"/>
 内容<input type="text" name="content"/>
 <input class="button" type="submit" value="发送"/>
 </form>
</body>
</html>

config.php 配置:

'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称
'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
'MAIL_USERNAME' =>'zha****22@163.com',//发件人的邮箱名
'MAIL_PASSWORD' =>'olagbqsyeyhilcwu',//163邮箱发件人授权密码
'MAIL_FROM' =>'zha****22@163.com',//发件人邮箱地址
'MAIL_FROMNAME'=>'天空还下着雪',//发件人姓名
'MAIL_CHARSET' =>'utf-8',//设置邮件编码
'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件

function.php公共函数:

/*
 * 发送邮件
 * @param $to string
 * @param $title string
 * @param $content string
 * @return bool
 * */
function sendMail($to, $title, $content) {
 Vendor('PHPMailer.PHPMailerAutoload');
 $mail = new PHPMailer(); //实例化
 $mail->IsSMTP(); // 启用SMTP
 $mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
 $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
 $mail->Username = C('MAIL_USERNAME'); //发件人邮箱名
 $mail->Password = C('MAIL_PASSWORD') ; //163邮箱发件人授权密码
 $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
 $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
 $mail->AddAddress($to,"尊敬的客户");
 $mail->WordWrap = 50; //设置每行字符长度
 $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
 $mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
 $mail->Subject =$title; //邮件主题
 $mail->Body = $content; //邮件内容
 $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
 return($mail->Send());
}

add方法调用:

public function add() {
 if(SendMail($_POST['mail'],$_POST['title'],$_POST['content'])) {
 $this->success('发送成功!');
 } else {
 $this->error('发送失败');
 }
}

做完以上工作后,接下来访问地址,通过表单向163(网易)邮箱发送邮件(如:发送给123456@163.com),也可以发送给自己,发送后,就会看到发送成功。下面你可以登录邮箱查看邮件。

QQ邮箱收发邮件

QQ邮箱收发件服务器地址和端口

thinkphp实现163、QQ邮箱收发邮件的方法

准备:
1、设置邮箱独立密码
2、开启POP3/SMTP服务

thinkphp实现163、QQ邮箱收发邮件的方法

配置:

'MAIL_HOST' =>'smtp.qq.com',//smtp服务器的名称
'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
'MAIL_USERNAME' =>'541****34@qq.com',//发件人邮箱名
'MAIL_PASSWORD' =>'s****1241',//qq邮箱发件人独立密码
'MAIL_FROM' =>'541****34@qq.com',//发件人地址
'MAIL_FROMNAME'=>'恋狱',//发件人姓名(qq邮箱昵称)
'MAIL_CHARSET' =>'utf-8',//设置邮件编码
'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件

其他无需改变,完成后不仅可以给QQ邮箱用户发送邮件,也可以给163邮箱用户发送邮件。

以上就是thinkphp实现163等邮箱收发邮件的方法,希望对大家的学习有所帮助。

PHP 相关文章推荐
PHP 第二节 数据类型之数组
Apr 28 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
php目录拷贝实现方法
Jul 10 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
PHP类型约束用法示例
Sep 28 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 PHP
PHP微信H5支付开发实例
Jul 25 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
详解Laravel框架的依赖注入功能
May 27 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 #PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 #PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 #PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 #PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 #PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 #PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 #PHP
You might like
如何隐藏你的.php文件
2007/01/04 PHP
MySQL修改密码方法总结
2008/03/25 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
javascript实现时钟动画
2020/12/03 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python购物车程序简单代码
2018/04/18 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
网络安全类面试题
2015/08/01 面试题
装潢设计专业推荐信模板
2013/11/26 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
文秘专业个人求职信
2013/12/22 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
工作自我评价范文
2015/03/05 职场文书
警告通知
2015/04/25 职场文书
贷款担保书范本
2015/09/22 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
go xorm框架的使用
2021/05/22 Golang
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android