第一步:准备PHPMailer

使用PHPMailer发送邮件,首先下载个PHPMailer

将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor

第二步:配置配置文件

修改conf.php文件

邮件配置:

//邮件配置

'THINK_EMAIL' =>
array(

'SMTP_HOST'   =>
'smtp.163.com', //SMTP服务器

'SMTP_PORT'   => '465',
//SMTP服务器端口

'SMTP_USER'   =>
'ihtxt@163.com', //SMTP服务器用户名

'SMTP_PASS'   => 'ihtxt.com',
//SMTP服务器密码

'FROM_EMAIL'  =>
'ihtxt@163.com', //发件人EMAIL

'FROM_NAME'   => '爱红电子书',
//发件人名称

'REPLY_EMAIL' => 'ihtxt@163.com',
//回复EMAIL(留空则为发件人EMAIL)

'REPLY_NAME'  => '爱红电子书',
//回复名称(留空则为发件人名称)

),

注:推荐使用163邮件,不要使用QQ邮箱,邮件配置一定要正确

第三步:将邮件发送函数放到common.php文件

可以将该函数放到ThinkPHPCommoncommon.php。也可以放到你生成的项目文件的Commoncommon.php。不过只能放到一个地方,否则就会报函数重定义错误。

function think_send_mail($to, $name, $subject
= '', $body = '', $attachment = null){

$config =
C('THINK_EMAIL');

vendor('PHPMailer.class#phpmailer');
//从PHPMailer目录导class.phpmailer.php类文件

$mail  
     
    = new PHPMailer();
//PHPMailer对象

$mail->CharSet
   = 'UTF-8';
//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码

$mail->IsSMTP();
 // 设定使用SMTP服务

$mail->SMTPDebug
 = 0;    
     
     
    // 关闭SMTP调试功能

// 1 =
errors and messages

// 2 =
messages only

$mail->SMTPAuth
  = true;    
     
     
 // 启用 SMTP 验证功能

$mail->SMTPSecure =
'ssl';      
     
    // 使用安全协议

$mail->Host
      =
$config['SMTP_HOST'];  // SMTP 服务器

$mail->Port
      =
$config['SMTP_PORT'];  // SMTP服务器的端口号

$mail->Username
  = $config['SMTP_USER'];  //
SMTP服务器用户名

$mail->Password
  = $config['SMTP_PASS'];  //
SMTP服务器密码

$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);

$replyEmail
      =
$config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];

$replyName
     
 =
$config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];

$mail->AddReplyTo($replyEmail, $replyName);

$mail->Subject
   = $subject;

$mail->AltBody
   = "为了查看该邮件,请切换到支持 HTML
的邮件客户端";

$mail->MsgHTML($body);

$mail->AddAddress($to,
$name);

if(is_array($attachment)){
// 添加附件

foreach ($attachment as $file){

is_file($file) && $mail->AddAttachment($file);

}

}

return
 $mail->Send() ? true :
$mail->ErrorInfo;

}

第四步:使用该函数发送邮件

$r =
think_send_mail('要发送的邮箱','发送人名称,即你的名称','文件标题','邮件内容');

注:如果使用phpmailer发送邮件报错

windows下在php.ini中去掉下面的分号

extension=php_openssl.dll

并将allow_url_fopen = Off改为

allow_url_fopen = On

thinkphp使用PHPMailer发送邮件的更多相关文章

  1. 利用PHPMailer发送邮件时报错

    利用thinkphp集成PHPMailer发送邮件时报错:Failed to connect to server: Unable to find the socket transport “ssl” ...

  2. ThinkPHP 中使用 PHPMailer 发送邮件 支持163和QQ邮箱等

    [摘要]ThinkPHP是一个开源的PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.本文介绍ThinkPHP 中使用 PHPMailer 发送邮件. PHP是自带可以发送邮件的Ma ...

  3. thinkphp中怎么使用phpmailer发送邮件

    phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,有需要了解的朋友可参考. phpmailer发送邮件功能很强大,今天真 ...

  4. ThinkPHP使用PHPmailer发送Email邮件

    下面介绍thinkphp如何使用phpmailer发送邮件,使用这个邮件发送类,配置好参数后,一句话即可发送邮件.仅适合于thinkphp框架. 第一步,下载类库 将Mail.class.php复制到 ...

  5. Thinkphp 使用gmail发送邮件

    1.Thinkphp 发送邮件内容来自:http://www.thinkphp.cn/code/32.html /** * 系统邮件发送函数 * @param string $to 接收邮件者邮箱 * ...

  6. 在Thinkphp3.2 中使用PHPMailer 发送邮件

    phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,有需要了解的朋友可参考. phpmailer发送邮件功能很强大,今天真 ...

  7. 使用PHPmailer发送邮件的详细代码

    一.使用PHPMailer发送邮件的原因 PHP有内置的mail()方法,但是由于一些主机空间不支持该方法,所以经常会遇到无法发送邮件的情况. 所以,可以下载PHPMailer类,实现邮件发送. 二. ...

  8. PHPMailer 发送邮件(二)

    发现PHPMailer又做了较大的更新,以前发送邮件的方法已不太适用,刚好要做一个实验,需要搭建个环境,这里使用Gmail进行测试,现记录下来. 传送地址Github: PHPMailer 基本要求的 ...

  9. 用phpmailer发送邮件提示SMTP Error: Could not connect to SMTP host解决办法

    之前做项目的时候做了一个用phpmailer发送邮件的功能<CI框架结合PHPmailer发送邮件>,昨天步署上线(刚开始用新浪云,嫌贵,换成阿里了),测试的时候,发送邮件却意外报错了.. ...

随机推荐

  1. 2018年第一篇行动笔记:Reading Log

    今天读了盖兆泉的文章<美国教师怎么上阅读课>,觉得干货颇多,不仅仅针对儿童英语阅读,而且对生活的方方面面都有助益. 该文章主要内容摘要如下: 学生需要大量时间阅读 这里的阅读时间是特指花在 ...

  2. springBoot系列教程07:异常捕获

    发生异常是很正常的事,异常种类也是千奇百怪,发生异常并不可怕,只要正确的处理,并正确的返回错误信息并无大碍,如果不进行捕获或者处理,分分钟服务器宕机是很正常的事 所以处理异常时,最基本的要求就是发生异 ...

  3. 关于java 定时任务

    几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quar ...

  4. 02-JAVA基础及面向对象(补充)

    引用数据类型 java中的数据类型可以分为 基本数据类型 和 引用数据类型 两大类 int float char boolean等都是基本数据类型 类类型都是引用数据类型 引用数据类型类似C语言中的指 ...

  5. Java中对List<E>按E的属性排序的简单方法

    这是LeetCode上的题目56. Merge Intervals中需要用到的, 简单来说,定义了E为 /** * Definition for an interval. * public class ...

  6. python calendar(日历)模块

    内置函数month() #!/usr/bin/python import calendar print calendar.month(2017,12) 输出: December 2017 Mo Tu ...

  7. Runtime那些事

    Runtime 前言 从字面意思看,就是运行时.但是这个运行时究竟什么意思?可以把它理解成:不是在编译期也不是在链接期,而是在运行时.那究竟在运行期间做了什么呢?按照苹果官方的说法,就是把一些决策(方 ...

  8. 前端开发chrome console的使用 :评估表达式 – Break易站

    本文内容来自:chrome console的使用 :评估表达式 – Break易站 从 DevTools 控制台使用它的某个评估功能查看页面上任意项目的状态. DevTools 控制台让您可通过特定方 ...

  9. python基础(三)编码,深浅copy

    编码,深浅copy encode,decode在python2中使用的一些迷糊,python3中更容易理解 要理解encode和decode,首先我们要明白编码,字符和二进制的相关概念,简单来说,计算 ...

  10. [Spark性能调优] 第三章 : Spark 2.1.0 中 Sort-Based Shuffle 产生的内幕

    本課主題 Sorted-Based Shuffle 的诞生和介绍 Shuffle 中六大令人费解的问题 Sorted-Based Shuffle 的排序和源码鉴赏 Shuffle 在运行时的内存管理 ...