A-A+

thinkphp3.2使用phpmailer类发送邮件

2015年03月21日 thinkphp开发 暂无评论 阅读 301 次

首先你需要下载最新版的phpmailer,然后添加至TP的第三方类库包目录ThinkPHP的Vendor目录,如下图

第二步

在config.php添加如下代码。这样就可以让第三步的函数获取phpmailer的配置信息了

 <?php

return array(

// 配置邮件发送服务器

 

'MAIL_HOST' =>'smtp.exmail.qq.com',

'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证

'MAIL_USERNAME' =>'root@cnsecer.com',

'MAIL_FROM' =>'root@cnsecer.com',

'MAIL_FROMNAME' =>'cnsecer',

'MAIL_PASSWORD' =>'********',

'MAIL_CHARSET' =>'utf-8',

'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件

);

 

?>

 

 

第三步

然后就该引入这个类库了,在 Application/common新建一个function.php,然后添加下面这个函数

/**

* 邮件发送函数

*/

function sendMail($to, $subject, $content) {

Vendor('PHPMailer.PHPMailerAutoload');

$mail = new PHPMailer(); //实例化

$mail->IsSMTP(); // 启用SMTP

$mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以126邮箱为例)

$mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证

$mail->Username = C('MAIL_USERNAME'); //你的邮箱名

$mail->Password = C('MAIL_PASSWORD') ; //邮箱密码

$mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址

$mail->FromName = C('MAIL_FROMNAME'); //发件人姓名

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

$mail->WordWrap = 50; //设置每行字符长度

$mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件

$mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码

$mail->Subject =$subject; //邮件主题

$mail->Body = $content; //邮件内容

$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //邮件正文不支持HTML的备用显示

if(!$mail->Send()) {

echo "Message could not be sent. <p>";

echo "Mailer Error: " . $mail->ErrorInfo;

exit();

} else {

echo "Message has been sent";

}

}

最后

在任意地方调用下面函数,就可收到邮件

sendMail("123456@qq.com","标题","内容");

thinkphp__phpmail

phpmail

教程二:

下面是具体步骤:

第一步、添加PHPMailer类库

将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内。(请确保class.phpmailer.php文件就在ThinkPHPVendorPHPMailerclass.phpmailer.php)

第二步、添加发送邮件函数

在项目目录中的Common文件夹中的common.php文件(如果没有请创建)添加如下代码:

<?php
/**********
 * 发送邮件 *
 **********/
function SendMail($address,$title,$message)
{
    vendor('PHPMailer.class#PHPMailer');
    $mail=new PHPMailer();
    // 设置PHPMailer使用SMTP服务器发送Email
    $mail->IsSMTP();
    // 设置邮件的字符编码,若不指定,则为'UTF-8'
    $mail->CharSet='UTF-8';
    // 添加收件人地址,可以多次使用来添加多个收件人
    $mail->AddAddress($address);
    // 设置邮件正文
    $mail->Body=$message;
    // 设置邮件头的From字段。
    $mail->From=C('MAIL_ADDRESS');
    // 设置发件人名字
    $mail->FromName='LilyRecruit';
    // 设置邮件标题
    $mail->Subject=$title;
    // 设置SMTP服务器。
    $mail->Host=C('MAIL_SMTP');
    // 设置为"需要验证"
    $mail->SMTPAuth=true;
    // 设置用户名和密码。
    $mail->Username=C('MAIL_LOGINNAME');
    $mail->Password=C('MAIL_PASSWORD');

    // 发送邮件。
    return($mail->Send());
}

?>

第三步、配置邮箱信息

编辑Conf目录下的config.php,在return array添加如下内容

'MAIL_ADDRESS'=>'xxx@126.com', // 邮箱地址
'MAIL_SMTP'=>'smtp.126.com', // 邮箱SMTP服务器
'MAIL_LOGINNAME'=>'xxx', // 邮箱登录帐号
'MAIL_PASSWORD'=>'xxx', // 邮箱密码

第四步、在Action中发送邮件

由于ThinkPHP会自动加载common.php中的函数,所以在需要发送邮件的时候,只需要使用如下代码即可。

SendMail("xxx@xxx.com","邮件标题","邮件正文");

至此,本教程已经结束。撒花!欢迎成功配置的同学SendMail("dreamrunner@foxmail.com","我也会用ThinkPHP发送邮件啦","哇啦哇啦~~");

还有一些说明

如果邮件正文中需要换行怎么办呢?其实,最简单的方法是——

SendMail("xxx@xxx.com","邮件标题","邮件正文
我换行啦~~!");

QQ邮箱(含foxmail)和网易的126、163都测试成功。ps:需要在邮箱后台开启stp服务.

 

标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利  京ICP备14060653号 Theme  Ality

用户登录