好吧,OT,TP通用简单邮件发送类带DEMO

浏览:1494 发布日期:2014/01/17 分类:技术分享
我自己之前写在OT中自用的,但自乐乐不如众乐乐,先看演示,演示为OT版本,TP所有版本通用的

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

上面的是邮件配置项

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

此图是成功邮件



下面的是代码,直接加在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;//返回错误信息
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>