PHPMailer发送邮箱(ThinkPHP实战篇)
1.下载phpmailer文件库

2.引用文件,此处将代码放到 :函数库中,function.php
function sendConsultantMessage($sendData){
Vendor('PHPMailer.class#phpmailer');
Vendor('PHPMailer.class#smtp');
$mail = new \PHPMailer(); //实例化
// var_dump($mail);
// exit;
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "smtp.exmail.qq.com"; //SMTP服务器 以163邮箱为例子
$mail->Port = 25; //邮件发送端口
$mail->SMTPAuth = true; //启用SMTP认证
$mail->CharSet = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式
$mail->Username = "smtp@test.com"; //你的邮箱
$mail->Password = "test123456"; //你的密码
$mail->Subject = $sendData['send_subject']; //邮件标题
$mail->From = "smtp@test.com"; //发件人地址(也就是你的邮箱)
$mail->FromName = "smtp@test.com"; //发件人姓名
// $address = "";//收件人email
$address = $sendData['send_receiver'];
$mail->AddAddress($address, "");//添加收件人(地址,昵称)
if($sendData['send_copy'] && $sendData['send_name']){
$path = $sendData['send_copy'];
$file = $sendData['send_name'];
$mail->AddAttachment($path,$file); // 添加附件,并指定名称
}
$mail->IsHTML(true); //支持html格式内容
// $mail->AddEmbeddedImage("./Application/Public/logo.png", "my-attach", "logo.png"); //设置邮件中的图片
// $mail->Body = '你好, <b>朋友</b>! <br/>这是一封来自<a href="http://www.helloweba.com" target="_blank">helloweba.com</a>的邮件!<br/><img alt="helloweba" src="cid:my-attach">'; //邮件主体内容
$mail->Body = $sendData['send_contents'];
if(!$mail->Send()){
return false;
}else{
return true;
}
}
3.核心方法
public function sendInfo(){
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set('PRC'); //设置中国时区
$consultantModel = M('consultant_entry');
$sendData['send_id'] = I('post.send_id');
$sendData['send_receiver'] = I('post.send_receiver');
$sendData['send_subject'] = I('post.send_subject');
$sendData['send_contents'] = I('post.send_contents');
$sendData['send_copy'] = '';
$sendData['send_name'] = '';
// $id = I('get.id',0,'intval');
//1111111111111111111111111111111111111111111111111
if($_FILES['send_copy']['name'] && $_FILES['send_copy']['error']==0){
$type = pathinfo($_FILES['send_copy']['name']);
if(in_array(strtolower($type['extension']), array('jpg','jpeg','gif','png','bmp','zip','rar','pdf','txt','html','xml','doc','docx','xls','xlsx','ppt','ppts')) && $_FILES['send_copy']['size'] < 3145728000){
// 2016-1-12 添加开始
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728000 ;// 设置附件上传大小
$upload->exts = array('jpg','jpeg','gif','png','bmp','zip','rar','pdf','txt','html','xml','doc','docx','xls','xlsx','ppt','ppts');// 设置附件上传类型
$upload->rootPath = './Application/Public/upload/'; // 设置附件上传根目录
$upload->savePath = 'email/';
$info = $upload->uploadOne($_FILES['send_copy']);
if(!$info){
$this->error($upload->getError());
exit;
}else{
$sendData['send_copy'] = $upload->rootPath.$info['savepath'].$info['savename'];
$sendData['send_name'] = $_FILES['send_copy']['name'];
}
}else{
$this->error("上传文件各式不正确或者文件过大!");
}
}
//
$resInfo = sendConsultantMessage($sendData);
if(!$resInfo){
unlink($sendData['send_copy']);
$this->error("邮件发送失败!",U("Consultant/getInfo"));
exit;
}else{
unlink($sendData['send_copy']);
$_where['id'] = $sendData['send_id'];
$_where['sale_id'] = $this->admin['id'];
$data = array(
'state'=>3,
);
$saveInfo = $consultantModel->where($_where)->save($data);
$this->success("邮件发送成功!",U("Consultant/getInfo"));
exit;
}
}
4.注意:
的引用。
5.几点注意事项
a.
此处发送邮箱的账号,密码要正确,同事确保已经开启了smtp服务。
b.发送附件,以及图片时,附件(图片)的路径要准确。(要定义为根目录下的相对路径,或者绝对路径)
项目中出现的问题:

e.网上的解决方案:

f.我的解决

g.其他问题以及解决方案
http://www.chinastor.com/a/jishu/mailserver/0G392262014.html
PHPMailer发送邮箱(ThinkPHP实战篇)的更多相关文章
- javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)
引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...
- javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)
引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- PHPMailer发送邮箱
1.可以参考的链接.http://www.helloweba.com/view-blog-205.html 2.下载最新的PHPMailer文件库 3.主要代码 class.phpmailer.php ...
- javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)
前言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 本章可能是讲解javamail的最后一 ...
- javamail模拟邮箱功能--邮件回复-中级实战篇【邮件回复方法】(javamail API电子邮件实例)
引言: JavaMai下载地址l jar包:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)
引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- PHP(ThinkPHP5.0) + PHPMailer 进行邮箱发送验证码
GitHub下载最新版第三方类库PHPMailer: 第一步: 打开网址https://github.com/PHPMailer/PHPMailer/ 下载PHPMailer,PHPMailer 需要 ...
- Redis实战篇
Redis实战篇 1 Redis 客户端 1.1 客户端通信 原理 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 . 客户端和服务器发送的命令或数据一律以 \r\n ...
- Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇
Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验架构说明 node101 ...
随机推荐
- SQLSERVER中的 CEILING函数和 FLOOR函数
SQLSERVER中的 CEILING函数和 FLOOR函数 --SQLSERVER中的 CEILING函数和 FLOOR函数 --ceiling函数返回大于或等于所给数字表达式的最小整数. --fl ...
- qq 自制表情包
如何自制qq表情包? CreateTime--2018年2月5日15:34:35 Author:Marydon 1.添加表情 2.选择表情(可以进行多选) 3.对添加的表情进行分组 4.添加成功( ...
- CSDN日报20170401 ——《假设你还是“程序猿”,我劝你别创业!》
[程序人生]假设你还是"程序猿".我劝你别创业! 作者:北漂周 在IT这一行做得久了,会接触到无数让人哭笑不得的外行话. 「我们就差一个写代码的了」是当中典型的一种,之所以黑它.不 ...
- CentOS 6上的redis搭建实战记录(转)
redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注.他的特点是支持各种数据结构,stirng,hashes, list,set,和 ...
- Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
setup slave from backup i got error Got fatal error 1236 from master when reading data from binary l ...
- 微信公众平台消息接口开发-封装weixin.class.php(转)
一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理. 我们就考虑在这个基础上做一次封装,weixin.class.ph ...
- PHP代码优化之缓存(转)
我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少.往往我们在追求这些的同时却失去了很多东西.下面我想讲讲我对PHP优化的理解.优化的目的是花最少的代价换来最快的运行速度与最 ...
- ZOJ 3427 Array Slicing (scanf使用)
题意 Watashi发明了一种蛋疼(eggache) 语言 你要为这个语言实现一个 array slicing 函数 这个函数的功能是 有一个数组初始为空 每次给你一个区间[ l, r) 和 ...
- Jquery easyUI datagrid载入复杂JSON数据方法
1.JSON数据为: { "total":28, "rows": [ { "itemNo": "1&q ...
- ubuntu16.04安装jekyll 3.3.1
本次安装的ekyll为最新的3.3.1版本. 一.预备工作,因位jekyll需要很多软件的支持,所以准备工作要做足. Ruby (including development headers, v1.9 ...