更多>>PHP程序设计 Blog

PHP邮件发送示例:ThinkPHP3.2结合PHPMailer发送邮件

本文以ThinkPHP框架中的3.2版本为例,利用PHPMailer函数包发送邮件。

1、下载PHPMailer

把下载下来的PHPMailer文件夹放到/ThinkPHP/Library/Vendor/目录下。

2、文件配置

(1)配置文件

修改配置文件/Application/Common/Conf/config.php,加入如下内容:

	//配置邮件发送服务器
	'MAIL_HOST' => 'smtp.163.com', //smtp服务器的名称
	'MAIL_SMTPAUTH' => true, //启用smtp认证
	'MAIL_USERNAME' => '***@163.com', //你的邮箱名
	'MAIL_FROM' => '***@163.com', //发件人地址
	'MAIL_FROMNAME'=> '***', //发件人姓名
	'MAIL_PASSWORD' => '***', //邮箱密码
	'MAIL_CHARSET' => 'utf-8', //设置邮件编码
	'MAIL_ISHTML' => true, //是否HTML格式邮件

(2)函数文件

修改函数文件/Application/Common/Common/function.php,加入如下内容:

/**
 * 邮件发送函数
 */
function sendMail($to, $title, $content){
	Vendor('PHPMailer.PHPMailerAutoload');     
	$mail = new PHPMailer(); //实例化
	$mail->IsSMTP(); // 启用SMTP
	$mail->Host=C('MAIL_HOST'); //smtp服务器的名称
	$mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
	$mail->Username = C('MAIL_USERNAME'); //你的邮箱名
	$mail->Password = C('MAIL_PASSWORD') ; //邮箱密码
	$mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
	$mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
	$mail->AddAddress($to,"尊敬的客户");
	$mail->WordWrap = 80; //设置每行字符长度
	$mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
	$mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
	$mail->Subject =$title; //邮件主题
	$mail->Body = $content; //邮件内容
	$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
	return($mail->Send());
}

3、文件测试

(1)模板文件

在模板文件/Application/Home/View/Index/reg.html中,加入如下内容:

< form action="/index.php/home/index/reg_save.html" method="post" enctype="multipart/form-data" >
    收件人邮箱:< input type="text" id="mail" name="mail" />
    邮件标题:< input type="text" id="title" name="title" />
    邮件内容:< input type="text" id="content" name="content" />
    < input class="button" type="submit" value="发送" />< /form >

(2)控制器文件

在控制器文件/Application/Home/Controller/IndexController.class.php中,加入如下内容:

完整文件内容如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
		$this -> display();
    }
	public function reg(){
		$this -> display();
	}
	public function reg_save(){
		if(SendMail($_POST['mail'],$_POST['title'],$_POST['content'])){
            $this->success('发送成功!');
        }else{
            $this->error('发送失败');
		}
	}
}

4、附件

附件为PHPMailer的压缩包文件

PHPMailer.rar


评论列表

no_photo
Hello.   来自乌克兰
Hello.

2024-02-10 12:45:37

发表评论

用来接收审核回复提醒,请认真填写

  换一张?
captcha
看不清?点击图片换一张