http://www.php400.cn/265.html
导读:PHP自带的mail()函数,是php内置发邮件的函数,该函数虽然简单,但是要想真正可以发邮件得有很复杂的配置。不适合新手,以及项目实际的应用的开发。php的mail()函数复杂配置,使得直接用函数发邮件变得不是上上之策,所以我们在实际中都会使用第三方类库,今天我介绍的是PHPMailer.class.php(PHPMailer.zip)。当然你在学习本教程之前...
导读:PHP自带的mail()函数,是php内置发邮件的函数,该函数虽然简单,但是要想真正可以发邮件得有很复杂的配置。不适合新手,以及项目实际的应用的开发。
php的mail()函数复杂配置,使得直接用函数发邮件变得不是上上之策,所以我们在实际中都会使用第三方类库,今天我介绍的是PHPMailer.class.php(PHPMailer.zip)。当然你在学习本教程之前如果你对ThinkPHP不太熟的话,建议去学一下本博客的ThinkPHP的一些入门教程(也是特别的简单哟)。
第一步 先下载PHPMailer.class.php压缩包(本文上面有附件下载)
解压后会有如下的三个文件:
1
2
3
|
1.
class
.pop3.php
2.
class
.smtp.php
3.PHPMailer.
class
.php
|
PHPMailer.
class
.php
这个文件就是核心的文件,把这个“三个”文件放到ThinkPHP的扩展包下路径如\下:D:\wamp\www\Extend\Library\ORG\Net
第二步 在ThinkPHP,common文件中新建一个common.php文件写入如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
function
SendMail(
$address
,
$title
,
$message
)
{
import(
'ORG.Net.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=
'zyimm'
;
// 设置邮件标题
$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());
|
第三步 在ThinkPHP,conf.php文件写入如下代码:
注意:以下是的我自己QQ邮箱的测试的,每个邮箱参数不同,具体以邮箱为准,qq邮箱的stmp需要自己到邮箱开启的。
1
2
3
4
5
6
7
8
|
return
array
(
//'配置项'=>'配置值'
'MAIL_ADDRESS'
=>
'799783009@qq.com'
,
// 邮箱地址
'MAIL_LOGINNAME'
=>
'799783009@qq.com'
,
// 邮箱登录帐号
'MAIL_SMTP'
=>
'smtp.qq.com'
,
// 邮箱SMTP服务器
'MAIL_PASSWORD'
=>
'******'
,
// 邮箱密码
'SHOW_PAGE_TRACE'
=>true,
);
|
第四步 剩下使用了。在ThinkPHP,IndexAction.class.php文件写入如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 本类由系统自动生成,仅供测试用途
class
IndexAction
extends
Action {
public
function
index(){
if
(!
empty
(
$_POST
[
'title'
]) && !
empty
(
$_POST
[
'content'
])){
if
(SendMail(
"52323232326@qq.com"
,
$_POST
[
'tile'
],
$_POST
[
'content'
]))
echo
'发送成功!'
;
else
echo
'发送失败'
;
}
$this
->assign(
'title'
,
'测试标题'
);
$this
->display();
}
}
|
//自己配置的 config.php 【注:有些邮箱需要开启smtp服务。 在邮箱内,设置-》账户里开启】
//'配置项'=>'配置值' //邮箱发送配置信息
'MAIL_ADDRESS'=>'qepwxxx@sina.com',//'2722007440@qq.com', // 邮箱地址
'MAIL_LOGINNAME'=>'qepwxxx0@sina.com',//2722007440@qq.com', // 邮箱登录帐号
'MAIL_SMTP'=>'smtp.sina.com',//'smtp.qq.com', // 邮箱SMTP服务器
'MAIL_PASSWORD'=>'xxxxx',//'winter@123', // 邮箱密码
'SHOW_PAGE_TRACE'=>true,