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 和 MySQL 基础教程(二)
Oct 09 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
PHP上传文件参考配置大文件上传
Dec 16 PHP
PHP图片加水印实现方法
May 06 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 PHP
laravel开发环境homestead搭建过程详解
Jul 03 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 empty() 检查一个变量是否为空
2011/11/10 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
python验证码图片处理(二值化)
2019/11/01 Python
Python实现一个优先级队列的方法
2020/07/31 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
华为python面试题
2016/05/03 面试题
爱牙日活动总结
2014/08/29 职场文书
师范生见习报告
2014/10/31 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
本科毕业论文致谢词
2015/05/14 职场文书