1.下载phpmailer文件库

2.引用文件,此处将代码放到 :函数库中,function.php

  1. function sendConsultantMessage($sendData){
  2. Vendor('PHPMailer.class#phpmailer');
  3. Vendor('PHPMailer.class#smtp');
  4.  
  5. $mail = new \PHPMailer(); //实例化
  6. // var_dump($mail);
  7. // exit;
  8. $mail->IsSMTP(); // 启用SMTP
  9. $mail->Host = "smtp.exmail.qq.com"; //SMTP服务器 以163邮箱为例子
  10. $mail->Port = 25; //邮件发送端口
  11. $mail->SMTPAuth = true; //启用SMTP认证
  12.  
  13. $mail->CharSet = "UTF-8"; //字符集
  14. $mail->Encoding = "base64"; //编码方式
  15.  
  16. $mail->Username = "smtp@test.com"; //你的邮箱
  17. $mail->Password = "test123456"; //你的密码
  18. $mail->Subject = $sendData['send_subject']; //邮件标题
  19.  
  20. $mail->From = "smtp@test.com"; //发件人地址(也就是你的邮箱)
  21. $mail->FromName = "smtp@test.com"; //发件人姓名
  22.  
  23. // $address = "";//收件人email
  24. $address = $sendData['send_receiver'];
  25. $mail->AddAddress($address, "");//添加收件人(地址,昵称)
  26.  
  27. if($sendData['send_copy'] && $sendData['send_name']){
  28. $path = $sendData['send_copy'];
  29. $file = $sendData['send_name'];
  30. $mail->AddAttachment($path,$file); // 添加附件,并指定名称
  31. }
  32.  
  33. $mail->IsHTML(true); //支持html格式内容
  34. // $mail->AddEmbeddedImage("./Application/Public/logo.png", "my-attach", "logo.png"); //设置邮件中的图片
  35. // $mail->Body = '你好, <b>朋友</b>! <br/>这是一封来自<a href="http://www.helloweba.com" target="_blank">helloweba.com</a>的邮件!<br/><img alt="helloweba" src="cid:my-attach">'; //邮件主体内容
  36. $mail->Body = $sendData['send_contents'];
  37. if(!$mail->Send()){
  38. return false;
  39. }else{
  40. return true;
  41. }
  42. }

3.核心方法

  1. public function sendInfo(){
  2. header("Content-type: text/html; charset=utf-8");
  3. date_default_timezone_set('PRC'); //设置中国时区
  4. $consultantModel = M('consultant_entry');
  5.  
  6. $sendData['send_id'] = I('post.send_id');
  7. $sendData['send_receiver'] = I('post.send_receiver');
  8. $sendData['send_subject'] = I('post.send_subject');
  9. $sendData['send_contents'] = I('post.send_contents');
  10. $sendData['send_copy'] = '';
  11. $sendData['send_name'] = '';
  12. // $id = I('get.id',0,'intval');
  13. //1111111111111111111111111111111111111111111111111
  14. if($_FILES['send_copy']['name'] && $_FILES['send_copy']['error']==0){
  15. $type = pathinfo($_FILES['send_copy']['name']);
  16. 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){
  17. // 2016-1-12 添加开始
  18. $upload = new \Think\Upload();// 实例化上传类
  19. $upload->maxSize = 3145728000 ;// 设置附件上传大小
  20. $upload->exts = array('jpg','jpeg','gif','png','bmp','zip','rar','pdf','txt','html','xml','doc','docx','xls','xlsx','ppt','ppts');// 设置附件上传类型
  21. $upload->rootPath = './Application/Public/upload/'; // 设置附件上传根目录
  22. $upload->savePath = 'email/';
  23. $info = $upload->uploadOne($_FILES['send_copy']);
  24. if(!$info){
  25. $this->error($upload->getError());
  26. exit;
  27. }else{
  28. $sendData['send_copy'] = $upload->rootPath.$info['savepath'].$info['savename'];
  29. $sendData['send_name'] = $_FILES['send_copy']['name'];
  30. }
  31.  
  32. }else{
  33. $this->error("上传文件各式不正确或者文件过大!");
  34. }
  35. }
  36. //
  37. $resInfo = sendConsultantMessage($sendData);
  38. if(!$resInfo){
  39. unlink($sendData['send_copy']);
  40. $this->error("邮件发送失败!",U("Consultant/getInfo"));
  41. exit;
  42. }else{
  43. unlink($sendData['send_copy']);
  44. $_where['id'] = $sendData['send_id'];
  45. $_where['sale_id'] = $this->admin['id'];
  46. $data = array(
  47. 'state'=>3,
  48. );
  49. $saveInfo = $consultantModel->where($_where)->save($data);
  50.  
  51. $this->success("邮件发送成功!",U("Consultant/getInfo"));
  52. exit;
  53. }
  54. }

4.注意:的引用。

5.几点注意事项

a.此处发送邮箱的账号,密码要正确,同事确保已经开启了smtp服务。

b.发送附件,以及图片时,附件(图片)的路径要准确。(要定义为根目录下的相对路径,或者绝对路径)

项目中出现的问题:

e.网上的解决方案:

f.我的解决

g.其他问题以及解决方案

http://www.chinastor.com/a/jishu/mailserver/0G392262014.html

PHPMailer发送邮箱(ThinkPHP实战篇)的更多相关文章

  1. javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)

    引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...

  2. javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  3. PHPMailer发送邮箱

    1.可以参考的链接.http://www.helloweba.com/view-blog-205.html 2.下载最新的PHPMailer文件库 3.主要代码 class.phpmailer.php ...

  4. javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)

    前言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 本章可能是讲解javamail的最后一 ...

  5. javamail模拟邮箱功能--邮件回复-中级实战篇【邮件回复方法】(javamail API电子邮件实例)

    引言: JavaMai下载地址l jar包:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  6. javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  7. PHP(ThinkPHP5.0) + PHPMailer 进行邮箱发送验证码

    GitHub下载最新版第三方类库PHPMailer: 第一步: 打开网址https://github.com/PHPMailer/PHPMailer/ 下载PHPMailer,PHPMailer 需要 ...

  8. Redis实战篇

    Redis实战篇 1 Redis 客户端 1.1 客户端通信 原理 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 . 客户端和服务器发送的命令或数据一律以 \r\n ...

  9. Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇

    Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验架构说明 node101 ...

随机推荐

  1. SuperMap iServer 9D HBase使用

    需提前将HBase进行部署,参考上篇部署文档 https://www.cnblogs.com/zhangyongli2011/p/9982143.html (转发请注明出处:http://www.cn ...

  2. C# 非顶端窗口截图 - 用于查找指定窗口并截图

    原文地址:http://blog.csdn.net/u013096568/article/details/53400389 panel上可以通过DrawToBitmap截图,不管是否在屏幕外是否有遮挡 ...

  3. 迅为4412开发板Linux驱动教程——总线_设备_驱动注冊流程具体解释

    视频下载地址: 驱动注冊:http://pan.baidu.com/s/1i34HcDB 设备注冊:http://pan.baidu.com/s/1kTlGkcR 总线_设备_驱动注冊流程具体解释 • ...

  4. C#中Out和Ref參数修饰符

    在编程过程中对于函数之间的參数的传递一般分为两种:传值和传地址. 以下为大家分析一下. 传值 比方你又一份文档,假设採用传值的话.相当于我复制了一份,因此我对我这份文档的改动都不会影响到你的那份.假设 ...

  5. 《转》CentOS7 安装MongoDB 3.0server (3.0的优势)

    1.下载&安装 MongoDB 3.0 正式版本号公布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活并且易于管理的数据库管理系统.MongoDB宣称.3.0新版本号 ...

  6. 文本检测: CTPN

    参考: https://zhuanlan.zhihu.com/p/37363942 https://zhuanlan.zhihu.com/p/34757009 https://zhuanlan.zhi ...

  7. mysql ANSI_QUOTES 这个sql_mode的作用

    首先sql_mode用于mysql的行为,sql_mode的多个值之间用','分隔: 1.平时sql_mode的值是多少? select @@session.sql_mode; +---------- ...

  8. StrongLoop

    http://loopback.io/getting-started/ 使用 StrongLoop 创建 Node.js MySQL 应用程序 StrongLoop 是 IBM 的一家子公司,Stro ...

  9. Spring注解@ResponseBody,@RequestBody

    @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象. @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMess ...

  10. Codeforces Round #256 (Div. 2) C. Painting Fence (搜索 or DP)

    [题目链接]:click here~~ [题目大意]:题意:你面前有宽度为1,高度给定的连续木板,每次能够刷一横排或一竖列,问你至少须要刷几次. Sample Input Input 5 2 2 1 ...