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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
实用函数10
Nov 08 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
第四章 php数学运算
Dec 30 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
PHP简单实现合并2个数字键数组值的方法
May 30 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
Centos7安装swoole扩展操作示例
Mar 26 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
一个取得文件扩展名的函数
2006/10/09 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
php实现的验证码文件类实例
2015/06/18 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python列表append和+的区别浅析
2015/02/02 Python
Python实现把xml或xsl转换为html格式
2015/04/08 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Django实现文件上传下载功能
2019/10/06 Python
如何获取Python简单for循环索引
2019/11/21 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
"引用"与指针的区别是什么
2016/09/07 面试题
StringBuilder和String的区别
2015/05/18 面试题
专营店会计助理岗位职责
2013/11/29 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
好军嫂事迹材料
2014/01/15 职场文书
初中生评语大全
2014/04/24 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
大学运动会加油稿
2015/07/22 职场文书