ホームページ > 記事 > PHPフレームワーク > ThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明
thinkphp フレームワーク の次のチュートリアル コラムでは、ThinkPHP フレームワークが電子メール アクティベーション機能を実装する方法を紹介します。
詳細は次のとおりです。
構成フレームワークは、以下に示すように、ThinkPHP3.1 フレームワークを採用しています。 構成プロセス図:1. 次のように構成を変更します:
<?php return array( //'配置项'=>'配置值' 'MAIL_ADDRESS'=>'shcg666@sohu.com', // 邮箱地址 'MAIL_SMTP'=>'smtp.sohu.com', // 邮箱SMTP服务器 'MAIL_LOGINNAME'=>'shcg666@sohu.com', // 邮箱登录帐号 'MAIL_PASSWORD'=>'******', // 邮箱密码 );
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 < '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());
}
インターネットから 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 メールボックス
送信サーバー: smtp.126.com
Netease 163 フリー メール
送信サーバー:smtp.163.com
NetEase 163VIP メールボックス
送信サーバー:smtp。 vip.163.com
NetEase 188 Fortune Mail
送信サーバー:smtp.188.com
NetEaseYeah.netメールボックス
送信サーバー:smtp.yeah.net
Netease netease.com メールボックス
送信サーバー:smtp。 netease.com
Sina 有料メールボックス
送信サーバー: smtp.vip.sina.com
Sina 無料メールボックス
送信サーバー:smtp.sina.com.cn
Sohu メールボックス
送信サーバー:smtp。 sohu.com
21cnhappymail
送信サーバー: vip.21cn.com
21cn 経済メール
送信サーバー: smtp.163.com
tom メールボックス
送信サーバー: smtp.tom.com
263mailbox
送信サーバー: smtp.263.net
NetEase 163.com メールボックス
送信サーバー: rwypop。 china.com
Yahoo メールボックス
送信サーバー: smtp.mail.yahoo.com
Gmail メールボックス
送信サーバー:smtp.gmail.com
最新の 10 件の thinkphp ビデオ チュートリアル
以上がThinkPHP フレームワークが電子メールアクティベーション機能を実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。