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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
mysql建立外键
Nov 25 PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
linux iconv方法的使用
Oct 01 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
php使用curl打开https网站的方法
Jun 17 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 PHP
Laravel Reponse响应客户端示例详解
Sep 03 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实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
pycharm新建一个python工程步骤
2019/07/16 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
会议邀请书范文
2014/02/02 职场文书
职业生涯规划书范文
2014/03/10 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
导游词之介休绵山
2019/12/31 职场文书
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js