【原】SMTP发送邮件

1.下载class.phpmailer.php和class.smtp.php至公共库

2.编写发邮件的公共函数

 function sendMail($param) {
        $config = C('THINK_EMAIL');
        vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件
        $mail = new PHPMailer(); //PHPMailer对象
        $mail->CharSet = $config['EMAIL_CHARSET']; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
        $mail->IsSMTP();  // 设定使用SMTP服务
        $mail->SMTPDebug = 0;   // 关闭SMTP调试功能
        // 1 = errors and messages
        // 2 = messages only
        $mail->SMTPAuth = $config['EMAIL_SMTPAUTH'];   // 启用 SMTP 验证功能
        $mail->Host = $config['SMTP_HOST'];  // SMTP 服务器
        $mail->Port = $config['SMTP_PORT'];  // SMTP服务器的端口号
        $mail->Username = $config['SMTP_USER'];  // SMTP服务器用户名
        $mail->Password = $config['SMTP_PASS'];  // SMTP服务器密码
        //$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
        $mail->SetFrom($param['mail_from'], $param['mail_name']);
        $replyEmail = $config['REPLY_EMAIL'] ? $config['REPLY_EMAIL'] : $param['mail_from'];
        $replyName = $config['REPLY_NAME'] ? $config['REPLY_NAME'] : $param['mail_name'];
        $mail->AddReplyTo($replyEmail, $replyName);

        if (!empty($param['to'])) {
            foreach ($param['to'] as $to) {
                $mail->AddAddress($to['address'], $to['name']);
            }
        }
        if (!empty($param['cc'])) {
            foreach ($param['cc'] as $cc) {
                $mail->addCC($cc['address'], $cc['name']);
            }
        }
//        if (!empty($param['bcc'])) {
//            foreach ($param['bcc'] as $bcc) {
//                $mail->addBCC($bcc['address'], $bcc['name']);
//            }
//        }

        $param['body'] = $mail->WrapText($param['body'], 900);
        $mail->Subject = $param['subject'];
        if (!empty($param['body'])) {
            $mail->MsgHTML($param['body']);
            $mail->IsHTML($config['EMAIL_ISHTML']);
            $mail->Body = $param['body'];
        }

//        if (!empty($param['attachment'])) { // 添加附件
//            foreach ($param['attachment'] as $file) {
//                if (is_file($file['path'])) {
//                    $mail->AddAttachment($file['path'], $file['name']);
//                }
//            }
//        }

        for($i=0;$i<(count($param['attachment']));$i++){
            $img=substr($param['attachment'][$i], strpos($param['attachment'][$i], ","));
            $mail->AddStringAttachment(base64_decode($img),"attach".$i.".png","base64","image/png");

        }

        //重发机制
        $ret['errno'] = 0;
        $ret['msg'] = '';
        if ($mail->Send()) {
            return $ret;
        } else {
            if ($mail->Send()) {
                return $ret;
            } else {
                $ret['errno'] = 1;
                $ret['msg'] = $mail->ErrorInfo;
                return $ret;
            }
        }
        // return $mail->Send() ? true : $mail->ErrorInfo;
    }

3.SMTP配置函数

 // 配置邮件发送服务器
'THINK_EMAIL'=>array(
    'SMTP_HOST'   =>  'localhost',  //邮件发送SMTP服务器
    'SMTP_PORT'   => '25',//SMTP服务器端口  
    'SMTP_USER'   =>  'admin', //SMTP服务器登陆用户名
    'SMTP_PASS'   =>  'admin', //SMTP服务器登陆密码 
    'FROM_EMAIL'  =>'发件箱@XX.com',
    'FROM_NAME'  =>'发件人姓名',
    'REPLY_EMAIL' =>'',
    'REPLY_NAME'  =>'',
    'EMAIL_CHARSET' =>'utf-8',
    'EMAIL_ISHTML' => 'TRUE',
    'EMAIL_SMTPAUTH' => '0',
    ),

4.根据库中存的Base64获取图片信息,实际调用的为一个URL

public function getImage() {
    $reportId = I('request.id');
    $imgInfos = I('request.img');
    header('Content-Type: image/png');
    $repotModel = M('XXX');
    $report = $repotModel->where(['id'=>$reportId])->find();
    $base = explode(',', $report[$imgInfos])[1];
    $base = base64_decode($base);
    echo $base;
    die();
}

 



转载于:https://www.cnblogs.com/HYanqing/p/9150804.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值