crx349 发表于 2016-3-19 01:08:11

基于onethink和thinkphp v3.2.3 发送邮件类



上面的是需要在配置管理中新增加的配置项

上面的是邮件配置项

上面的是用户注册成功邮件模板,更多可自己添加,比如密码找回之类的

此图是成功邮件



下面的是代码,直接加在application/common/common/function.php中
使用的是PHPMailer,此类库包自己在网上下,放入THINKPHP/libary/ORG中就可以了,使用方法 在任何想发送邮件的地方,比如注册控制器中,send_mail(邮件地址,主题,邮件内容); 这样就行了,超简单
比如 send_mail($email,$subject,$body);
    /**
* 系统邮件发送函数
* @param string $to    接收邮件者邮箱
* @param string $name接收邮件者名称
* @param string $subject 邮件主题
* @param string $body    邮件内容
* @param string $attachment 附件列表
* @茉莉清茶 57143976@qq.com
*/
function send_mail($to = '', $subject = '', $body = '', $name = '', $attachment = null){
    $from_email = C('MAIL_SMTP_USER');
    $from_name = C('WEB_SITE');   
    $reply_email = '';   
    $reply_name = '';   
    //new phpmailer();
    //$mail = new ORG\PHPMailer\phpmailer();
    import('ORG.PHPMailer.phpmailer');//从PHPMailer目录导入phpmailer.class.php类文件
    $mail             = new PHPMailer; //实例化PHPMailer
    $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
    $mail->IsSMTP();// 设定使用SMTP服务
    $mail->SMTPDebug= 0;                     // 关闭SMTP调试功能
                                             // 1 = errors and messages
                                             // 2 = messages only
    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
    $mail->SMTPSecure = '';               // 使用安全协议
    $mail->Host       = C('MAIL_SMTP_HOST');// SMTP 服务器
    $mail->Port       = C('MAIL_SMTP_PORT');// SMTP服务器的端口号
    $mail->Username   = C('MAIL_SMTP_USER');// SMTP服务器用户名
    $mail->Password   = C('MAIL_SMTP_PASS');// SMTP服务器密码
    $mail->SetFrom($from_email, $from_name);
    $replyEmail       = $reply_email?$reply_email:$from_email;
    $replyName      = $reply_name?$reply_name:$from_name;
    if($to == ''){
    $to = C('MAIL_SMTP_CE');//邮件地址为空时,默认使用后台默认邮件测试地址
    }
    if($name == ''){
    $name = C('WEB_SITE');//发送者名称为空时,默认使用网站名称
    }
    if($subject == ''){
    $subject = C('WEB_SITE_TITLE');//邮件主题为空时,默认使用网站标题
    }
    if($body == ''){
    $body = C('WEB_SITE_DESCRIPTION');//邮件内容为空时,默认使用网站描述
    }
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject    = $subject;
    $mail->MsgHTML($body);//解析
    $mail->AddAddress($to, $name);
    if(is_array($attachment)){ // 添加附件
      foreach ($attachment as $file){
            is_file($file) && $mail->AddAttachment($file);
      }
    }
    return $mail->Send() ? true : $mail->ErrorInfo;//返回错误信息
}
页: [1]
查看完整版本: 基于onethink和thinkphp v3.2.3 发送邮件类