Maison  >  Article  >  développement back-end  >  Comment implémenter une boîte aux lettres de liaison dans phpmailer

Comment implémenter une boîte aux lettres de liaison dans phpmailer

墨辰丷
墨辰丷original
2018-05-30 09:22:581470parcourir

Cet article présente principalement la méthode d'implémentation de la boîte aux lettres de liaison phpmailer. Il analyse en détail la configuration, l'implémentation des fonctions et les compétences opérationnelles associées de la boîte aux lettres de liaison phpmailer sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

L'effet est le suivant :


1. Configuration

<?php
return array (
 &#39;email_host&#39; => &#39;smtp.aliyun.com&#39;,
 &#39;email_port&#39; => &#39;25&#39;,
 &#39;email_username&#39; => &#39;diandodo@aliyun.com&#39;,
 &#39;email_password&#39; => &#39;xxxxxx&#39;,
 &#39;email_from&#39; => &#39;diandodo@aliyun.com&#39;,
 &#39;email_fromname&#39; => &#39;点多多&#39;,
 &#39;email_subject&#39; => &#39;助店宝商户激活邮箱&#39;,
 &#39;email_body&#39; => "尊敬的用户{$username}您好:
    您的激活码为<font color=&#39;red&#39;>{$code}</font>,请将激活码输入进行验证! 激活码有效期为6分钟^_^",
);

2. Fonction d'envoi

// 发送邮件
private function _sendEmail($email,$code,$username = &#39;&#39;) {
    import(&#39;@.ORG.phpmailer&#39;);
    $mail = new PHPMailer(); //建立邮件发送类,类名不一定与引入的文件名相同
    $mail->CharSet = "UTF-8";
    $mail->IsSMTP(); // 使用SMTP方式发送
    $mail->Host = C(&#39;email_host&#39;); // 您的企业邮局域名
    $mail->SMTPAuth = true; // 启用SMTP验证功能
    $mail->Username = C(&#39;email_username&#39;); // 邮局用户名(请填写完整的email地址)
    $mail->Password = C(&#39;email_password&#39;); // 邮局密码
    $mail->Port=C(&#39;email_port&#39;);
    $mail->From = C(&#39;email_from&#39;); //邮件发送者email地址
    $mail->FromName = C(&#39;email_fromname&#39;);
    $mail->AddAddress("$email", "$username");
    $mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
    $mail->Subject = C(&#39;email_subject&#39;); //邮件标题
    $email_body = "尊敬的用户<strong>{$username}</strong>您好:
    您的激活码为<font color=&#39;red&#39;>{$code}</font>,请将激活码输入进行验证! 激活码有效期为6分钟^_^";
    $mail->Body = $email_body; //邮件内容,上面设置HTML,则可以是HTML
    if(!$mail->Send())
    {
      return array(&#39;status&#39;=>2,&#39;info&#39;=>$mail->ErrorInfo);
    } else {
      return array(&#39;status&#39;=>1,&#39;info&#39;=>&#39;发送成功&#39;);;
    }
}

3. 🎜>

// 发送邮箱激活码
public function sendActivationcode() {
    session($this->activationtime, null);
    $activationtime = session($this->activationtime);
    $email = $this->_post(&#39;email&#39;, &#39;trim&#39;);
    if (IS_AJAX && (!$activationtime || time() > $activationtime)) {
      $activationcode = rand(1000, 9999);
      $res = $this->_sendEmail($email,$activationcode,$this->user[&#39;username&#39;]);
      if($res[&#39;status&#39;] == 1) {
        //设置发送限制时间
        session($this->activationtime, time() + 50);
        session($this->activationcode, array(&#39;code&#39; => $activationcode, &#39;time&#39; => time() + 600));
        $this->ajaxReturn(array(&#39;result&#39; => true));
      } else {
        //发送失败写入日志文件
        $log = date(&#39;Y-m-d H:i:s&#39;) . " 发送失败:{$res[&#39;info&#39;]}" . PHP_EOL;
        file_put_contents(RUNTIME_PATH . &#39;Log/activationcode.log&#39;, $log, FILE_APPEND);
        $this->ajaxReturn(array(&#39;result&#39; => false, &#39;error&#39; => $res[&#39;info&#39;]));
      }
    } else {
      $this->ajaxReturn(array(&#39;result&#39; => false, &#39;error&#39; => &#39;错误的请求&#39;));
    }
}
4. Vérifier et lier

// 绑定邮箱
public function bind_email() {
    if (IS_POST) {
      // 获取验证码
      $activationcode = $this->_post(&#39;activationcode&#39;,&#39;trim&#39;);
      $email = $this->_post(&#39;email&#39;,&#39;trim&#39;);
      $session_activationcode = session($this->activationcode);
      if (time() > $session_activationcode[&#39;time&#39;] || $activationcode != $session_activationcode[&#39;code&#39;]) {
        $this->error(&#39;验证码有误&#39;);
      } else {
        M(&#39;User&#39;)->where(array(&#39;id&#39;=>$this->user[&#39;id&#39;]))->save(array(&#39;email&#39;=>$email));
        $this->success(&#39;绑定成功&#39;,U(&#39;Account/my&#39;));
      }
    } else {
      $this->display();
    }
}
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde, l'apprentissage aide.

Recommandations associées :

php

Méthode d'implémentation d'une expression régulière pour déterminer s'il s'agit d'un numéro d'identification légal

php

Utilisez eval pour implémenter la formule de calcul au format chaîne
PHP implémente l'acquisition aléatoire de données débloquées sur le nom de domaine WeChat


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn