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开发负载均衡指南
Jul 17 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
更改localhost为其他名字的方法
Feb 10 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
php switch语句多个值匹配同一代码块应用示例
Jul 29 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
php实现简单文件下载的方法
Jan 30 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 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 zip文件解压类代码
2009/12/02 PHP
色色整理的PHP面试题集锦
2012/03/08 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
python导入时小括号大作用
2017/01/10 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python实现机器学习之多元线性回归
2018/09/06 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
大学生个人简历自我评价
2013/11/16 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
三八妇女节慰问信
2015/02/14 职场文书
用人单位聘用意向书
2015/05/11 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL