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脚本的10个技巧(4)
Oct 09 PHP
php getsiteurl()函数
Sep 05 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
php调用C代码的实现方法
Mar 11 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP时间和日期函数详解
May 08 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
nginx下安装php7+php5
Jul 31 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
javascript 打印页面代码
2009/03/24 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
Python利用ansible分发处理任务
2015/08/04 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
Django websocket原理及功能实现代码
2020/11/14 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
TCP/IP的分层模型
2013/10/27 面试题
冰淇淋开店创业计划书
2014/02/01 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
公民授权委托书
2014/10/15 职场文书
公务员检讨书
2014/11/01 职场文书
走进科学观后感
2015/06/18 职场文书
团拜会主持词
2015/07/04 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers