La colonne tutorielle suivante du framework thinkphp vous présentera comment le framework ThinkPHP implémente la fonction d'activation par e-mail. J'espère qu'elle sera utile aux amis dans le besoin !
Les détails sont les suivants :
Le cadre de configuration adopte le cadre ThinkPHP3.1, comme indiqué ci-dessous :
Diagramme du processus de configuration :
1. Modifiez la configuration comme suit :
<?php return array( //'配置项'=>'配置值' 'MAIL_ADDRESS'=>'shcg666@sohu.com', // 邮箱地址 'MAIL_SMTP'=>'smtp.sohu.com', // 邮箱SMTP服务器 'MAIL_LOGINNAME'=>'shcg666@sohu.com', // 邮箱登录帐号 'MAIL_PASSWORD'=>'******', // 邮箱密码 );
2. Ajouter une classe
<?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 < '4.2.0' && mt_srand((double)microtime() * 1000000); if($numeric) { $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); } else { $hash = ''; $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz'; $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里面配置下. //例如'domain' => 'http://write.blog.csdn.net', $domain = C('domain'); //生成激活码模块地址 $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('PHPMailer.class#PHPMailer'); require("phpmailer/class.phpmailer.php"); require("phpmailer/class.smtp.php"); //实例化邮件类 $mail=new PHPMailer(); // 设置PHPMailer使用SMTP服务器发送Email $mail->IsSMTP(); // 设置邮件的字符编码,若不指定,则为'UTF-8' $mail->CharSet='UTF-8'; // 添加收件人地址,可以多次使用来添加多个收件人 $mail->AddAddress($address); // 设置邮件正文 $mail->Body=$message; // 设置邮件头的From字段。//发件人 $mail->From=C('MAIL_ADDRESS'); // 设置发件人名字 $mail->FromName='LilyRecruit'; // 设置邮件标题 $mail->Subject=$title; // 设置SMTP服务器。 $mail->Host=C('MAIL_SMTP'); // 设置为"需要验证" $mail->SMTPAuth=true; // 设置用户名和密码。 $mail->Username=C('MAIL_LOGINNAME'); $mail->Password=C('MAIL_PASSWORD'); // 发送邮件。 return($mail->Send()); }
3. Fichiers importés
Téléchargez le package PHPMailer depuis Internet et copiez class.smtp.php et class.phpmailer.php directement sans aucune modification. Cliquez sur le lienpour télécharger le fichier class.smtp.php (https://share.weiyun.com/6ECQn7Mq) .
Cliquez sur le lienpour télécharger l'exemple de code complet du fichier class.phpmailer.php (https://share.weiyun.com/beakkcPt) .
La configuration est terminée, la méthode de traitement spécifique nécessite d'autres modifications.4. Adresses du serveur de messagerie commun (serveur de réception et serveur de messagerie d'envoi)
Boîte aux lettres Tencent QQServeur de réception : pop.qq.com
Envoi Serveur : smtp.qq.com
Serveur de réception : pop3.126.com
Serveur d'envoi : smtp.126.com
Serveur de réception : pop.163.com
Serveur d'envoi : smtp.163.com
Serveur de réception : pop.vip.163.com
Serveur d'envoi : smtp. vip.163.com
Serveur de réception : pop.188.com
Serveur d'envoi : smtp.188.com
Serveur de réception : pop.yeah.net
Serveur d'envoi : smtp.yeah.net
Serveur de réception : pop.netease.com
Serveur d'envoi : smtp. netease.com
Serveur de réception : pop3.vip.sina.com
Serveur d'envoi : smtp.vip.sina.com
Serveur de réception : pop3.sina.com.cn
Serveur d'envoi : smtp.sina.com.cn
Serveur de réception : pop3.sohu.com
Serveur d'envoi : smtp. sohu.com
Serveur de réception : vip.21cn.com
Serveur d'envoi : vip.21cn.com
Serveur de réception : pop .163.com
Serveur d'envoi : smtp.163.com
Serveur de réception : pop.tom.com
Serveur d'envoi : smtp.tom.com
Serveur de réception : 263.net
Serveur d'envoi : smtp.263.net
Serveur de réception : rwypop.china.com
Serveur d'envoi :rwypop.china.com
Serveur de réception : pop.mail.yahoo.com
Serveur d'envoi : smtp.mail.yahoo.com
Serveur de réception : pop.gmail.com
Serveur d'envoi : smtp.gmail.com
Recommandations associées :
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!