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 相关文章推荐
Session的工作方式
Oct 09 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
laravel安装和配置教程
Oct 29 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
php一个解析字符串排列数组的方法
May 12 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
php实现的生成排列算法示例
Jul 25 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错误、异常处理机制(补充)
2012/05/07 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
php数组去除空值函数分享
2015/02/02 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
vue router 组件的高级应用实例代码
2019/04/08 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
Python pass 语句使用示例
2014/03/11 Python
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python入门教程之运算符与控制流
2016/08/17 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
生产助理岗位职责
2014/06/18 职场文书
清洁工个人工作总结
2015/03/05 职场文书
试用期自我评价范文
2015/03/10 职场文书
小学数学国培研修日志
2015/11/13 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
apache ftpserver搭建ftp服务器
2022/05/20 Servers