ThinkPHP结合PHPMailer自动发送邮件功能

在最近的一个case中,是一个类OA的项目,客户需要有邮件提醒。整个的程序架构考虑敏捷开发,使用了 ThinkPHP,因为在之前做JSP的时候用过PHPMailer,所以就考虑将PHPMailer引入进来。

具体的方法:

下载PHPMailer类包,放入ThinkPHP的Vendor目录,这是ThinkPHP的第三方类库目录

然后在项目目录下common文件夹下,在common.php(ThinkPHP中此文件会自动被引用,如果没有,新建一个common.php)中新增调用发送邮件的函数

 

/********************************Email**********************************/

//邮发方法的定义
function s_mail($sendto, $title, $response) {
	//导入函数包的类class.phpmailer.php
	vendor ( "PHPMailer.class#phpmailer" );

	// 参数说明(发送到的邮箱地址, 邮件主题, 邮件内容, 接受方的的姓名)
	//填写要发送给管理员的邮件接受地址,请改为正确的地址
	$sendto_mail = $sendto;
	//邮件主题
	$subject = $title;
	//意见内容
	$body = $response;
	//发送邮件
	smtp_mail ( $sendto_mail, $subject, $body );

}

//下面定义一个发送邮件的函数,已经测试通过。
//$sendto_email:邮件发送地址
//$subject:邮件主题
//$body:邮件正文内容
//$sendto_name邮件接受方的姓名,发送方起的名字。一般可省。
function smtp_mail($sendto_email, $subject = null, $body = null, $sendto_name = null) {
	//新建一个邮件发送类对象
	$mail = new PHPMailer ();
	// send via SMTP
	$mail->IsSMTP ();
	// SMTP 邮件服务器地址,这里需要替换为发送邮件的邮箱所在的邮件服务器地址
	$mail->Host = "smtp.qq.com";
	//邮件服务器验证开
	$mail->SMTPAuth = true;
	// SMTP服务器上此邮箱的用户名,有的只需要@前面的部分,有的需要全名。请替换为正确的邮箱用户名
	$mail->Username = "[email protected]";
	// SMTP服务器上该邮箱的密码,请替换为正确的密码
	$mail->Password = "xxxx";
	// SMTP服务器上发送此邮件的邮箱,请替换为正确的邮箱  ,与$mail->Username 的值是对应的。
	$mail->From = "[email protected]";
	// 真实发件人的姓名等信息,这里根据需要填写
	$mail->FromName = "[".date('Y-m-d H:i:s',time ())."]需求系统邮件";
	// 这里指定字符集!
	$mail->CharSet = "utf-8";
	$mail->Encoding = base64;
	// 收件人邮箱和姓名
	$mail->AddAddress ( $sendto_email, $sendto_name );
	//这一项根据需要而设
	$mail->AddReplyTo ( '[email protected]', "admin" );
	// set word wrap
	//$mail->WordWrap = 50;
	// 附件处理
	//$mail->AddAttachment("/var/tmp/file.tar.gz");
	//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
	// 发送 HTML邮件
	$mail->IsHTML ( false );
	// 邮件主题
	$mail->Subject = $subject;
	// 邮件内容
	$mail->Body = $body;
	$mail->AltBody = "text/html";

	if (! $mail->Send ()) {
		return 0;
	} else {
		return 1;
	}
}

 然后再Action中直接调用函数s_mail($sendto, $title, $response)即可

你可能感兴趣的:(ThinkPHP结合PHPMailer自动发送邮件功能)