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动态创建Flash动画
Oct 09 PHP
使PHP自定义函数返回多个值
Nov 26 PHP
PHP实现MVC开发得最简单的方法――模型
Apr 10 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
详细解读PHP中接口的应用
Aug 12 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 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生成静态页面详解
2006/12/05 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
使用php来实现网络服务
2009/09/15 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
PHP中cookie知识点学习
2018/05/06 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
在JS中如何调用JSP中的变量
2014/01/22 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
python实现划词翻译
2020/04/23 Python
python获取标准北京时间的方法
2015/03/24 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
怎么写自荐书范文
2014/02/12 职场文书
喝酒检查书范文
2014/02/23 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
党员个人公开承诺书
2014/08/29 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
风之谷观后感
2015/06/11 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
大学班长竞选稿
2015/11/20 职场文书