>  기사  >  PHP 프레임워크  >  ThinkPHP 프레임워크가 이메일 활성화 기능을 구현하는 방법에 대한 자세한 설명

ThinkPHP 프레임워크가 이메일 활성화 기능을 구현하는 방법에 대한 자세한 설명

藏色散人
藏色散人앞으로
2021-06-11 12:00:043969검색

다음 튜토리얼 칼럼인 thinkphp Framework에서는 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. 함수 A 클래스에 추가

<?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

NetEase yeah.net 메일함
수신 서버 : pop.yeah.net
발신서버 : smtp.yeah.net

Netease netease.com email
수신서버 : pop.netease.com
발신서버 : smtp.netease.com

시나유료이메일
수신서버 : pop3. vip.sina.com
발신 서버 : smtp.vip.sina.com

Sina 무료 메일함
수신 서버 : pop3.sina.com.cn
발신 서버 : smtp.sina.com.cn

Sohu 메일함
수신 서버 :pop3.sohu.com
발신 서버 : smtp.sohu.com

21cn 즐거움 메일
수신 서버 : vip.21cn.com
발신 서버 : vip.21cn.com

21cn 경제 메일
수신 서버 : pop.163 .com
발신 서버: smtp.163.com

tom 메일함
수신 서버: pop.tom.com
발신 서버: smtp.tom.com

263 메일함
수신 서버: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제