ThinkPHP 中使用 PHPMailer 发送邮件 支持163和QQ邮箱等
而PHPMailer是一个用于发送电子邮件的PHP函数包,它可以使用SMTP的方法通过163、QQ邮箱等第三方服务器发送邮件。这样还有一个好处,就是这些大型邮箱发出的邮件一般不会被屏蔽。
另外说明一下,ThinkPHP是一个开源的PHP框架。如果只是寻找PHP中发送邮件的方法而误入此地的同学请继续Google百度!
本文所使用的是ThinkPHP 2.1版和 PHPMailer 5.1版。(后者建议您直接从本博下载,因为我们不能保证下面的代码在所有版本的PHPMailer中都能正常运行)
下面是具体步骤:
第一步、添加PHPMailer类库
将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内。(请确保class.phpmailer.php文件就在ThinkPHP\Vendor\PHPMailer\class.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的方法。
最后,这是我第一次写教程,希望同学们支持哦~!
ThinkPHP 中使用 PHPMailer 发送邮件 支持163和QQ邮箱等的更多相关文章
- Thinkphp中使用PHPmailer发送邮件
在ThinkPHP\Extend\Vendor\目录下放入PHPMailer文件夹,里面包含以下文件 重置密码发送邮件 public function recover(){ if($this-> ...
- 在Thinkphp3.2 中使用PHPMailer 发送邮件
phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,有需要了解的朋友可参考. phpmailer发送邮件功能很强大,今天真 ...
- 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送
1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.q ...
- 使用python发送163邮件 qq邮箱
使用python发送163邮件 def send_email(title, content): import smtplib from email.mime.multipart import MIME ...
- ThinkPHP中使用PHPMailer邮件类
第一步.添加PHPMailer类库将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内.(请确保class.phpmailer.php文件就在ThinkPHP\Vend ...
- TP3.2 中使用 PHPMailer 发送邮件
第一步.添加PHPMailer类库 http://pan.baidu.com/s/1o7Zc7V0 第二步.添加发送邮件函数 在common目录中的公共函数文件加入函数 <?php /***** ...
- 在Yii Framework中利用PHPMailer发送邮件(2011-06-02 14:06:23)
转载▼ 标签: it 分类: 技术共享 官方扩展链接:http://www.yiiframework.com/extension/mailer/这个扩展配置十分方便,如果有问题的话,可以打开Debug ...
- php 发送邮件(2)qq邮箱开通
一 首选登录qq邮箱,在最上面那里找到设置,点击打开 二 下拉,找到账号安全和它下面的内容 ,开启服务 imap/smtp
- PHP 利用QQ邮箱发送邮件「PHPMailer」
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
随机推荐
- Web Service学习笔记
Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API ...
- Poj 3683-Priest John's Busiest Day 2-sat,拓扑排序
Priest John's Busiest Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8872 Accept ...
- Python的模块,模块的使用、安装,别名,作用域等概念
所谓的模块就是将不同功能的函数分别放到不同的文件中,这样不仅有利于函数的维护,也方便了函数的调用.在Python中,一个.py文件就是一个模块(Module). 在模块的上层有一个叫做包(Packag ...
- Python的高级特性之切片、迭代、列表生成式、生成器
切片 切片就是获取一个list.tuple.字符串等的部分元素 l = range(100) #取[0,5)元素 print(l[:5]) #[0, 1, 2, 3, 4] #在[0,99]中每隔10 ...
- 关于ASSERT(断言)的作用
程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用.断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况 ...
- nyoj 55 懒省事的小明【优先队列】
懒省事的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...
- easyui在当前tab中直接加载url
var tab = $('#mainTabs').tabs('getSelected'); // get selected panel $('#mainTabs').tabs('update', { ...
- VM下的linux系统上不了网?? 使用putty远程登录不上linux的解决方法?
背景:昨晚想尝试一下用putty远程登录我的linux系统,悲剧的是,我竟然连接不上,显示 connection refused ,连接被拒绝.于是我就想看看能不能在linux下看看能不能访问百度 ...
- wpf DataGrid CheckBox列全选
最近在wpf项目中遇到当DataGrid的header中的checkbox选中,让该列的checkbox全选问题,为了不让程序员写自己的一堆事件,现写了一个自己的自定义控件 在DataGrid的 &l ...
- .h头文件 .lib库文件 .dll动态库文件之间的关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...
