Heim > PHP-Framework > Denken Sie an PHP > Detaillierte Erläuterung, wie das ThinkPHP-Framework die E-Mail-Aktivierungsfunktion implementiert

Detaillierte Erläuterung, wie das ThinkPHP-Framework die E-Mail-Aktivierungsfunktion implementiert

藏色散人
Freigeben: 2021-06-29 10:36:54
nach vorne
4111 Leute haben es durchsucht

Die folgende Tutorial-Kolumne des thinkphp-Frameworks wird Ihnen vorstellen, wie das ThinkPHP-Framework die E-Mail-Aktivierungsfunktion implementiert. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Die Details sind wie folgt:

Das Konfigurationsframework verwendet das ThinkPHP3.1-Framework, wie unten gezeigt:

Konfigurationsprozessdiagramm:

Detaillierte Erläuterung, wie das ThinkPHP-Framework die E-Mail-Aktivierungsfunktion implementiert

1 Ändern Sie die Konfiguration wie folgt:

<?php
return array(
  //&#39;配置项&#39;=>&#39;配置值&#39;
    &#39;MAIL_ADDRESS&#39;=>&#39;shcg666@sohu.com&#39;, // 邮箱地址
    &#39;MAIL_SMTP&#39;=>&#39;smtp.sohu.com&#39;, // 邮箱SMTP服务器
    &#39;MAIL_LOGINNAME&#39;=>&#39;shcg666@sohu.com&#39;, // 邮箱登录帐号
    &#39;MAIL_PASSWORD&#39;=>&#39;******&#39;, // 邮箱密码
);
Nach dem Login kopieren

2. Fügen Sie die Funktion A-Klasse hinzu

<?php
class EmailAction extends Action{
  /*
  * microtime() 函数返回当前 Unix 时间戳和微秒数。
  * mt_srand() 播种 Mersenne Twister 随机数生成器。从 PHP 4.2.0 版开始,seed 参数变为可选项,当该项为空时,会被设为随时数。
  * 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已自动完成。
  * pow — 指数表达式
  */
  //random()这个函数是我用来生成一个随机数的,$numeric = 0生成一个6位的大小写字母与数字混合的字符串。$numeric = 1生成一个6位数字的字符串
  public function random($length = 6 , $numeric = 0) {
  PHP_VERSION < &#39;4.2.0&#39; && mt_srand((double)microtime() * 1000000);
  if($numeric) {
    $hash = sprintf(&#39;%0&#39;.$length.&#39;d&#39;, mt_rand(0, pow(10, $length) - 1));
  } else {
    $hash = &#39;&#39;;
    $chars = &#39;ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz&#39;;
    $max = strlen($chars) - 1;
    for($i = 0; $i < $length; $i++) {
      $hash .= $chars[mt_rand(0, $max)];
    }
  }
  return $hash;
  }
  //发送邮件的方法
  public function index(){
    //生成6位激活码
    $random = $this->random(6,0);
    //获取本网站的域名,域名在config里面配置下.
    //例如&#39;domain&#39; => &#39;http://write.blog.csdn.net&#39;,
    $domain = C(&#39;domain&#39;);
    //生成激活码模块地址
    $url = $domain.U("Home/Email/activate")."/?yam=$random";
    //将邮件地址和随机数放入session
    session("shcg666@sohu.com","$random");
    //发送邮件
    SendMail("shcg666@sohu.com","这是邮件标题","将此网址复制到浏览框$url");
  }
}
function SendMail($address,$title,$message){
  //引入文件
  vendor(&#39;PHPMailer.class#PHPMailer&#39;);
  require("phpmailer/class.phpmailer.php");
  require("phpmailer/class.smtp.php");
  //实例化邮件类
  $mail=new PHPMailer();
  // 设置PHPMailer使用SMTP服务器发送Email
  $mail->IsSMTP();
  // 设置邮件的字符编码,若不指定,则为&#39;UTF-8&#39;
  $mail->CharSet=&#39;UTF-8&#39;;
  // 添加收件人地址,可以多次使用来添加多个收件人
  $mail->AddAddress($address);
  // 设置邮件正文
  $mail->Body=$message;
  // 设置邮件头的From字段。//发件人
  $mail->From=C(&#39;MAIL_ADDRESS&#39;);
  // 设置发件人名字
  $mail->FromName=&#39;LilyRecruit&#39;;
  // 设置邮件标题
  $mail->Subject=$title;
  // 设置SMTP服务器。
  $mail->Host=C(&#39;MAIL_SMTP&#39;);
  // 设置为"需要验证"
  $mail->SMTPAuth=true;
  // 设置用户名和密码。
  $mail->Username=C(&#39;MAIL_LOGINNAME&#39;);
  $mail->Password=C(&#39;MAIL_PASSWORD&#39;);
  // 发送邮件。
  return($mail->Send());
}
Nach dem Login kopieren

3. Importierte Dateien

Laden Sie das PHPMailer-Paket aus dem Internet herunter und kopieren Sie class.smtp.php und class.phpmailer.php direkt ohne Änderungen.

Klicken Sie auf den Link , um die Datei class.smtp.php herunterzuladen (https://share.weiyun.com/6ECQn7Mq).

Für den vollständigen Beispielcode der Datei class.phpmailer.php klicken Sie auf den Link zum Herunterladen (https://share.weiyun.com/beakkcPt).

Die Konfiguration ist abgeschlossen, die spezifische Verarbeitungsmethode erfordert weitere Änderungen.

4. Gemeinsame Mailserver-Adressen (Empfangsserver und Sende-Mailserver)

Tencent QQ-Postfach
Empfangsserver: pop.qq.com
Sendeserver: smtp.qq.com

NetEase 126-Postfach
Empfangsserver: pop3.126.com
Sendeserver: smtp.126.com

NetEase 163 kostenlose E-Mail
Empfangsserver: pop.163.com
Sendeserver: smtp.163.com

NetEase 163VIP-Postfach
Empfangsserver: pop.vip .163.com
Sendeserver: smtp.vip.163.com

NetEase 188 Fortune Mail
Empfangsserver: pop.188.com
Sendeserver: smtp.188.com

NetEase yeah.net-Postfach
Empfangsserver: pop.yeah.net
Sendeserver: smtp.yeah.net

Netease netease.com E-Mail
Empfangsserver: pop.netease.com
Sendeserver: smtp.netease.com

Sina bezahlte E-Mail
Empfangsserver: pop3. vip.sina.com
Sendeserver: smtp.vip.sina.com

Sina kostenloses Postfach
Empfangsserver: pop3.sina.com.cn
Sendeserver: smtp.sina.com.cn

Sohu-Postfach
Empfangsserver :pop3.sohu.com
Sendeserver: smtp.sohu.com

21cn Pleasure Mail
Empfangsserver: vip.21cn.com
Sendeserver: vip.21cn.com

21cn Economic Mail
Empfangsserver: pop.163 .com
Sendeserver: smtp.163.com

tom email
Empfangsserver: pop.tom.com
Sendeserver: smtp.tom.com

263 E-Mail
Empfangsserver: 263.net
Sendeserver: smtp. 263.net

NetEase 163.com-Postfach
Empfangsserver: rwypop.china.com
Sendeserver: rwypop.china.com

Yahoo-Postfach
Empfangsserver: pop.mail.yahoo.com
Sendeserver: smtp.mail .yahoo.com

Gmail-Postfach
Empfangsserver: pop.gmail.com
Sendeserver: smtp.gmail.com

Verwandte Empfehlungen:Die neuesten 10 Thinkphp-Video-Tutorials

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung, wie das ThinkPHP-Framework die E-Mail-Aktivierungsfunktion implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage