ThinkPHP 中使用 PHPMailer 发送邮件
网站邮件发送是网站运营中不可或缺的一项功能。一般来说,网站邮件发送用到的功能有:
1、网站用户给网站管理员留言或建议(通过表单提到到服务器利用邮件程序发送到管理员的邮箱里)。
2、用户注册时,给用户注册的电子邮箱发送一封认证邮件,用户登录邮箱后经过认证才能够成为网站的正式用户。
3、用户忘记密码时,给用户的电子邮箱发送新密码。
4、给其他用户发送邮件等等。
PHPmailer能够很好的执行该功能。本例在php5之上的版本演示成功,PHPmailer Version: 5.0.2 。
首先,下载PHPmailer类库包并将之解压到Lib的ORG目录底下,并将PHPMailer目录里面的
PHPMailer.class.phpmailer.php文件改名为PHPMailer.class.php;要想不这么麻烦可以放到
THinkPHP的vendor目录中。
其次,在一个模块里编写发送邮件的mail 方法。本例将在 Message模块的mail方法中实现邮发功能。
class MessageAction extends Action{ public function mail(){ //邮发方法的定义 //$sendto_email:邮件发送地址 //$subject:邮件主题 //$body:邮件正文内容 //$sendto_name邮件接受方的姓名,发送方起的名字。一般可省。 $sendto_email = ‘user@example.com’; $subject = ‘这个是测试发送邮件的主题’; $body = ‘这是测试的内容,如果收到,那就噢了’; $this->_setemail( $sendto_email, $subject, $body,$sendto_name=null); } private function _setemail( $sendto_email, $subject=null, $body=null,$sendto_name=null){ import(‘@.ORG.PHPMailer.PHPMailer’); //or vendor(“PHPMailer.class#phpmailer”); $mail=new PHPMailer(); // 设置PHPMailer使用SMTP服务器发送Email $mail->IsSMTP(); // 设置邮件的字符编码,若不指定,则为’UTF-8′ $mail->CharSet=’UTF-8′; // 添加收件人地址,可以多次使用来添加多个收件人 $mail->AddAddress($sendto_email); // 设置邮件正文 $mail->Body=$body; // 设置邮件头的From字段。SMTP服务器上发送此邮件的邮箱,请替换为正确的邮箱,$mail->Username 的值是对应的。 $mail->From=’user@example.com’; // 设置发件人名字 $mail->FromName=’管理员’; // 设置邮件标题 $mail->Subject=$subject; // 设置SMTP服务器。SMTP 邮件服务器地址,这里需要替换为发送邮件的邮箱所在的邮件服务器地址 $mail->Host=’smtp.ym.163.com’; // 设置为”需要验证” $mail->SMTPAuth=true; // 设置用户名和密码。 $mail->Username=’user@example.com’; $mail->Password=’123456′;// 发送邮件。 //return($mail->Send()); if($mail->Send()){ echo ‘ok’; }else{ echo ‘fail’; } } }