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’;
        }
    }
}

 

posted @ 2013-12-17 13:16  樰梅  阅读(438)  评论(0编辑  收藏  举报