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 相关文章推荐
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
PHP文件上传类实例详解
Apr 08 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
通过源码分析Python中的切片赋值
2017/05/08 Python
python实现二叉查找树实例代码
2018/02/08 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Django框架视图介绍与使用详解
2019/07/18 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
通过python检测字符串的字母
2020/02/18 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
大一新生军训时的自我评价分享
2013/12/05 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
董事长开业致辞
2015/07/29 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
MySQL时区造成时差问题
2022/04/13 MySQL
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers