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_Flame(Version:Progress)的原代码
Oct 09 PHP
通过html表格发电子邮件
Oct 09 PHP
杏林同学录(九)
Oct 09 PHP
一组PHP加密解密函数分享
Jun 05 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 PHP
php7 新增功能实例总结
May 25 PHP
详解PHP中的8个魔术常量
Jul 06 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php date()日期时间函数详解
2010/05/16 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python文件和流(实例讲解)
2017/09/12 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
财务会计专业毕业生自荐信
2013/10/19 职场文书
大学毕业生通用自荐信范文
2013/10/31 职场文书
花店创业计划书范文
2014/02/07 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
车队安全员岗位职责
2015/02/15 职场文书
运动会宣传语
2015/07/13 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android
Echarts如何重新渲染实例详解
2022/05/30 Javascript