php的mail()函数复杂配置,使得直接用函数发邮件变得不是上上之策,所以我们在实际中都会使用第三方类库,今天我介绍的是PHPMailer.class.php(PHPMailer.zip)。当然你在学习本教程之前如果你对ThinkPHP不太熟的话,建议去学一下本博客的ThinkPHP的一些入门教程(也是特别的简单哟)。
第一步 先下载PHPMailer.class.php压缩包(本文上面有附件下载)
解压后会有如下的三个文件:
1.class.pop3.php
2.class.smtp.php
3.PHPMailer.class.php
PHPMailer.class.php这个文件就是核心的文件,把这个文件放到ThinkPHP的扩展包下路径如\下:ThinkPHP\Extend\Library
ThinkPHP3.2以上版本的扩展包路径是是ThinkPHP\Library\Org\Net
第二步 在ThinkPHP,common文件中新建一个common.php文件写入如下代码:
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需要自己到邮箱开启的。 建议使用126邮箱发信 QQ邮箱很麻烦。
return array( //'配置项'=>'配置值' 'MAIL_ADDRESS'=>'send@526net.com', // 邮箱地址 'MAIL_LOGINNAME'=>'send@526net.com', // 邮箱登录帐号 'MAIL_SMTP'=>'smtp.526net.com', // 邮箱SMTP服务器 'MAIL_PASSWORD'=>'******', // 邮箱密码 'SHOW_PAGE_TRACE'=>true, );
第四步 剩下使用了。在ThinkPHP,IndexAction.class.php文件写入如下代码:
if(SendMail("597417106@qq.com",$_POST['tile'],$_POST['content']))
echo '发送成功!';
else
echo '发送失败';
}