ThinkPHP利用PHPMailer实现邮件发送实现代码


Posted in PHP onSeptember 26, 2013

本文所使用的是ThinkPHP 2.1版和 PHPMailer 5.1版。(后者建议您直接从本博下载,因为我们不能保证下面的代码在所有版本的PHPMailer中都能正常运行)

下面是具体步骤:

第一步、添加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都测试成功。因为近期访问GMail比较吃力,所以没有测试。听说GMail要求必须使用SSL,有这方面需要的同学自行谷歌百度PHPMailer的方法。

PHP 相关文章推荐
php中用文本文件做数据库的实现方法
Mar 27 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
UCenter 批量添加用户的php代码
Jul 17 PHP
PHP生成随机密码类分享
Jun 25 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
php实现网站留言板功能
Nov 04 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP实现今天是星期几的几种写法
Sep 26 #PHP
一个PHP的远程图片抓取函数分享
Sep 25 #PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 #PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 #PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 #PHP
DOM XPATH获取img src值的query
Sep 23 #PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 #PHP
You might like
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
js中this用法实例详解
2015/05/05 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
python实现拉普拉斯特征图降维示例
2019/11/25 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
应聘英语教师求职信
2014/04/24 职场文书
小露珠教学反思
2014/04/30 职场文书
教师个人自我评价
2015/03/04 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
创业计划书之宠物店
2019/09/19 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL