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通用检测函数集合
Nov 25 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
php 文件上传实例代码
Apr 19 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
php中switch语句用法详解
Aug 17 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
Laravel 数据库加密及数据库表前缀配置方法
Oct 10 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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
对盗链说再见...
2006/10/09 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python异常处理操作实例详解
2018/05/10 Python
Python3.8中使用f-strings调试
2019/05/22 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
关于Java finally的面试题
2016/04/27 面试题
大学辅导员事迹材料
2014/02/05 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
运动会口号8字
2014/06/07 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers