ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明

ThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明

藏色散人
藏色散人転載
2021-06-11 12:00:044051ブラウズ

thinkphp フレームワーク の次のチュートリアル コラムでは、ThinkPHP フレームワークが電子メール アクティベーション機能を実装する方法を紹介します。

詳細は次のとおりです。

構成フレームワークは、以下に示すように、ThinkPHP3.1 フレームワークを採用しています。

構成プロセス図:

ThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明

1. 次のように構成を変更します:

<?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;, // 邮箱密码
);

2. 関数 ## にクラスを追加します。 #

<?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());
}

3. インポートされたファイル

インターネットから PHPMailer パッケージをダウンロードし、class.smtp.php と class.phpmailer.php を変更せずに直接コピーします。

リンク

をクリックして、class.smtp.php ファイル (https://share.weiyun.com/6ECQn7Mq)

をダウンロードします。 class.phpmailer.php ファイルの完全なサンプル コードについては、リンク

をクリックしてダウンロード (https://share.weiyun.com/beakkcPt)

してください。 設定は完了しました。特定の処理方法をさらに変更する必要があります。

4. 共通メールサーバー (受信サーバーと送信メールサーバー) アドレス

Tencent QQ メールボックス

受信サーバー: Pop.qq.com

送信サーバー: smtp.qq.com

Netease 126 メールボックス

受信サーバー: Pop3.126.com

送信サーバー: smtp.126.com

Netease 163 フリー メール

受信サーバー:pop.163.com

送信サーバー:smtp.163.com

NetEase 163VIP メールボックス

受信サーバー:pop.vip.163.com

送信サーバー:smtp。 vip.163.com

NetEase 188 Fortune Mail

受信サーバー:pop.188.com

送信サーバー:smtp.188.com

NetEaseYeah.netメールボックス

受信サーバー:pop.yeah.net

送信サーバー:smtp.yeah.net

Netease netease.com メールボックス

受信サーバー:pop.netease.com

送信サーバー:smtp。 netease.com

Sina 有料メールボックス

受信サーバー: Pop3.vip.sina.com

送信サーバー: smtp.vip.sina.com

Sina 無料メールボックス

受信サーバー:pop3.sina.com.cn

送信サーバー:smtp.sina.com.cn

Sohu メールボックス

受信サーバー:pop3.sohu.com

送信サーバー:smtp。 sohu.com

21cnhappymail

受信サーバー: vip.21cn.com

送信サーバー: vip.21cn.com

21cn 経済メール

受信サーバー: Pop .163 .com

送信サーバー: smtp.163.com

tom メールボックス

受信サーバー: Pop.tom.com

送信サーバー: smtp.tom.com

263mailbox

受信サーバー: 263.net

送信サーバー: smtp.263.net

NetEase 163.com メールボックス

受信サーバー: rwypop.china.com

送信サーバー: rwypop。 china.com

Yahoo メールボックス

受信サーバー: Pop.mail.yahoo.com

送信サーバー: smtp.mail.yahoo.com

Gmail メールボックス

受信サーバー:pop.gmail.com

送信サーバー:smtp.gmail.com

関連する推奨事項:
最新の 10 件の thinkphp ビデオ チュートリアル

以上がThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。