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 相关文章推荐
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
PHP sprintf()函数用例解析
May 18 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
php cookie工作原理与实例详解
Jul 18 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 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中将网址转换为超链接的函数
2011/09/02 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
代码详解django中数据库设置
2019/01/28 Python
python快排算法详解
2019/03/04 Python
python3中property使用方法详解
2019/04/23 Python
selenium+python环境配置教程详解
2019/05/28 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
python list多级排序知识点总结
2019/10/23 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
python文件读取失败怎么处理
2020/06/23 Python
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
python opencv通过按键采集图片源码
2021/05/20 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫