Maison développement back-end tutoriel php PHP发送邮箱激活验证_PHP教程

PHP发送邮箱激活验证_PHP教程

Jul 14, 2016 am 10:09 AM
php server 发送 数据库 激活 连接 邮箱 验证

第一步:php连接数据库:dbconnection.php

 
$server = "(local)";
$_uid = "adweb";
$_pwd = "loveyou";
$_database = "addev";
 
 function sqlsrv_connect( $server , $uid ,$pwd,$db  ){
    
    $connect_id= mssql_connect($server, $uid, $pwd);
           //echo $connect_id ;
   if($connect_id){
               if (mssql_select_db($db,$connect_id))
                   return $connect_id ;
    else
     echo mssql_get_last_message() ; 
           }
   else
    echo mssql_get_last_message() ;
 }
 function sqlsrv_query($SQL,$conn  ) {
   returnmssql_query( $SQL ,$conn ) ;
 }
function sqlsrv_num_rows($n) {
 
 return mssql_num_rows($n) ;
}
function sqlsrv_fetch_array($n) {
  returnmssql_fetch_array($n);
}
//调用函数,连接数据库
$conn = sqlsrv_connect( $server , $_uid ,$_pwd,$_database  ) ;
?>
 
第二步:邮箱类email.class.php
 
class smtp
{
 
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;
 
var $sock;
 
function smtp($relay_host = "", $smtp_port = 25,$auth =false,$user,$pass)
{
$this->debug = FALSE;
$this->smtp_port = $smtp_port;
$this->relay_host = $relay_host;
$this->time_out = 30; //is used in fsockopen()
#
$this->auth = $auth;//auth
$this->user = $user;
$this->pass = $pass;
#
$this->host_name = "localhost"; //is used in HELOcommand
$this->log_file ="";
$this->sock = FALSE;
}
 
function sendmail($to, $from, $subject = "", $body = "", $mailtype,$cc = "", $bcc = "", $additional_headers = "")
{
$mail_from =$this->get_address($this->strip_comment($from));
$body = ereg_replace("(^|(\r\n))(\\.)", "\\1.\\3", $body);
$header .= "MIME-Version:1.0\r\n";
if($mailtype=="HTML"){
$header .= "Content-Type:text/html\r\n";
}
$header .= "To: ".$to."\r\n";
if ($cc != "") {
$header .= "Cc: ".$cc."\r\n";
}
$header .= "From:$from\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: ".date("r")."\r\n";
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
list($msec, $sec) = explode(" ", microtime());
$header .= "Message-ID: \r\n";
$TO = explode(",", $this->strip_comment($to));
if ($cc != "") {
$TO = array_merge($TO, explode(",",$this->strip_comment($cc)));
}
if ($bcc != "") {
$TO = array_merge($TO, explode(",",$this->strip_comment($bcc)));
}
$sent = TRUE;
foreach ($TO as $rcpt_to) {
$rcpt_to = $this->get_address($rcpt_to);
if (!$this->smtp_sockopen($rcpt_to)) {
$this->log_write("Error: Cannot send email to".$rcpt_to."\n");
$sent = FALSE;
continue;
}
if($this->smtp_send($this->host_name,$mail_from, $rcpt_to, $header, $body)) {
$this->log_write("E-mail has been sent to\n");
} else {
$this->log_write("Error: Cannot send email to\n");
$sent = FALSE;
}
fclose($this->sock);
$this->log_write("Disconnected from remotehost\n");
}
echo "
";
echo $header;
return $sent;
}
function smtp_send($helo, $from, $to, $header, $body = "")
{
if (!$this->smtp_putcmd("HELO", $helo)) {
return $this->smtp_error("sending HELOcommand");
}
#auth
if($this->auth){
if (!$this->smtp_putcmd("AUTH LOGIN",base64_encode($this->user))) {
return $this->smtp_error("sending HELOcommand");
}
if (!$this->smtp_putcmd("",base64_encode($this->pass))) {
return $this->smtp_error("sending HELOcommand");
}
}
#
if (!$this->smtp_putcmd("MAIL","FROM:")) {
return $this->smtp_error("sending MAIL FROMcommand");
}
if (!$this->smtp_putcmd("RCPT","TO:")) {
return $this->smtp_error("sending RCPT TOcommand");
}
if (!$this->smtp_putcmd("DATA")) {
return $this->smtp_error("sending DATAcommand");
}
if (!$this->smtp_message($header, $body)) {
return $this->smtp_error("sending message");
}
if (!$this->smtp_eom()) {
return $this->smtp_error("sending.[EOM]");
}
if (!$this->smtp_putcmd("QUIT")) {
return $this->smtp_error("sending QUITcommand");
}
return TRUE;
}
function smtp_sockopen($address)
{
if ($this->relay_host == "") {
return $this->smtp_sockopen_mx($address);
} else {
return $this->smtp_sockopen_relay();
}
}
function smtp_sockopen_relay()
{
$this->log_write("Trying to".$this->relay_host.":".$this->smtp_port."\n");
$this->sock =@fsockopen($this->relay_host,$this->smtp_port, $errno, $errstr,$this->time_out);
if (!($this->sock &&$this->smtp_ok())) {
$this->log_write("Error: Cannot connenct to relayhost ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr."(".$errno.")\n");
return FALSE;
}
$this->log_write("Connected to relay host".$this->relay_host."\n");
return TRUE;;
}
function smtp_sockopen_mx($address)
{
$domain = ereg_replace("^.+@([^@]+)$", "\\1", $address);
if (!@getmxrr($domain,$MXHOSTS)) {
$this->log_write("Error: Cannot resolve MX\"".$domain."\"\n");
return FALSE;
}
foreach ($MXHOSTS as $host) {
$this->log_write("Trying to".$host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($host,$this->smtp_port, $errno, $errstr,$this->time_out);
if (!($this->sock &&$this->smtp_ok())) {
$this->log_write("Warning: Cannot connect to mx host".$host."\n");
$this->log_write("Error: ".$errstr."(".$errno.")\n");
continue;
}
$this->log_write("Connected to mx host".$host."\n");
return TRUE;
}
$this->log_write("Error: Cannot connect to any mxhosts (".implode(", ", $MXHOSTS).")\n");
return FALSE;
}
function smtp_message($header, $body)
{
fputs($this->sock, $header."\r\n".$body);
$this->smtp_debug(">".str_replace("\r\n", "\n"."> ",$header."\n> ".$body."\n> "));
return TRUE;
}
function smtp_eom()
{
fputs($this->sock, "\r\n.\r\n");
$this->smtp_debug(". [EOM]\n");
return $this->smtp_ok();
}
function smtp_ok()
{
$response = str_replace("\r\n", "",fgets($this->sock, 512));
$this->smtp_debug($response."\n");
if (!ereg("^[23]", $response)) {
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned\"".$response."\"\n");
return FALSE;
}
return TRUE;
}
function smtp_putcmd($cmd, $arg = "")
{
if ($arg != "") {
if($cmd=="") $cmd = $arg;
else $cmd = $cmd." ".$arg;
}
fputs($this->sock, $cmd."\r\n");
$this->smtp_debug(">".$cmd."\n");
return $this->smtp_ok();
}
function smtp_error($string)
{
$this->log_write("Error: Error occurred while".$string.".\n");
return FALSE;
}
function log_write($message)
{
$this->smtp_debug($message);
if ($this->log_file == "") {
return TRUE;
}
$message = date("M d H:i:s").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file)|| !($fp = @fopen($this->log_file, "a"))) {
$this->smtp_debug("Warning: Cannot open log file\"".$this->log_file."\"\n");
return FALSE;
}
flock($fp, LOCK_EX);
fputs($fp, $message);
fclose($fp);
return TRUE;
}
function strip_comment($address)
{
$comment = "\\([^()]*\\)";
while (ereg($comment, $address)) {
$address = ereg_replace($comment, "", $address);
}
return $address;
}
function get_address($address)
{
$address = ereg_replace("([ \t\r\n])+", "", $address);
$address =ereg_replace("^.*.*$","\\1", $address);
return $address;
}
function smtp_debug($message)
{
if ($this->debug) {
echo $message."
";
}
}
function get_attach_type($image_tag) { //
$filedata = array();
$img_file_con=fopen($image_tag,"r");
unset($image_data);
while($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag))))
$image_data.=$tem_buffer;
fclose($img_file_con);
$filedata['context'] = $image_data;
$filedata['filename']= basename($image_tag);
$extension=substr($image_tag,strrpos($image_tag,"."),strlen($image_tag)-strrpos($image_tag,"."));
switch($extension){
case ".gif":
$filedata['type'] = "image/gif";
break;
case ".gz":
$filedata['type'] = "application/x-gzip";
break;
case ".htm":
$filedata['type'] = "text/html";
break;
case ".html":
$filedata['type'] = "text/html";
break;
case ".jpg":
$filedata['type'] = "image/jpeg";
break;
case ".tar":
$filedata['type'] = "application/x-tar";
break;
case ".txt":
$filedata['type'] = "text/plain";
break;
case ".zip":
$filedata['type'] = "application/zip";
break;
default:
$filedata['type'] = "application/octet-stream";
break;
}
 
return $filedata;
}
}
?>
第三步:激活类jihuo.php
require('dbconnection.php');
  echo $_GET['code'];
  echo "已经激活";
  echo "
";
if($_GET[code]) {
 $result=sqlsrv_query(  'select *from actcode  where code="'.$_GET[code].'"',$conn);   //查询数据库中是否有此激活账号
 if(sqlsrv_num_rows($result) == 1 ) {
    //$_ROW =sqlsrv_fetch_array( $result );
  //$i = sqlsrv_query( 'updateADUser  set status=5 whereemail="'.$_ROW[email].'"', $conn ); //修改注册时此邮箱用户的状态值为1
  //if($i){
   //sqlsrv_query( ' delete  from actcode wherecode="'.$_GET[code].'"' ,$conn );
   echo'邮箱激活-请到主页登陆' ;
   //} 
 }
 else{
  echo '验证已结束' ;
 }
}
?>
 
第四步:发送邮箱类sendemail.php
 //发送激活邮件
require_once ('email.class.php');
require('dbconnection.php');
//##########################################
$smtpserver = "smtp.163.com";//SMTP服务器163/126/sohu/qq/xinlang
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "zxwzxw_1@163.com";//SMTP服务器的用户邮箱
$smtpuser = "zxwzxw_1";//SMTP服务器的用户帐号
$smtppass = "doyoumissme";//SMTP服务器的用户密码
$mailsubject = "你好,很高兴认识你!";//邮件主题
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
##########################################
$smtp = newsmtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false;//是否显示发送的调试信息
$toemail = "zxwzxw_12@163.com"; //收件人邮箱
$actcodes =md5($toemail.mt_rand(111111,999999)); 
$mmsg = '您已经注册成功 ,请将点击以下链接激活您的账号: 点击激活';
 $hh = sqlsrv_query('insert intoactcode(code,email) values("'.$actcodes.'" , "'.$toemail.'")',$conn);  //把注册时的邮箱号和验证插入数据表中
if($hh){
   $smtp->sendmail($toemail, $smtpusermail,$mailsubject, $mmsg,$mailtype);   //发送邮件
}
else {
 echo '发送失败!';
 exit;
}
   
?>
 
第五步:最后 :  发送邮箱激活验证.txt
 
1 建立数据库:addev  表ACTcode  字段code varchar(50)   emailvarchar(50)
2 连接数据:dbconnection.php
$server = "(local)";
$_uid = "adweb";
$_pwd = "loveyou";
$_database = "addev";
 
 function sqlsrv_connect( $server , $uid ,$pwd,$db  ){
    
    $connect_id= mssql_connect($server, $uid, $pwd);
           //echo $connect_id ;
   if($connect_id){
               if (mssql_select_db($db,$connect_id))
                   return $connect_id ;
    else
     echo mssql_get_last_message() ; 
           }
   else
    echo mssql_get_last_message() ;
 }
 
//调用函数,连接数据库
$conn = sqlsrv_connect( $server , $_uid ,$_pwd,$_database  ) ;
?>
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477674.htmlTechArticle第一步:php连接数据库:dbconnection.php ?php $server = (local); $_uid = adweb; $_pwd = loveyou; $_database = addev; function sqlsrv_connect( $server , $uid ,$pwd,$db ){ $c...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Pourquoi utiliser PHP? Avantages et avantages expliqués Pourquoi utiliser PHP? Avantages et avantages expliqués Apr 16, 2025 am 12:16 AM

Les principaux avantages du PHP comprennent la facilité d'apprentissage, un soutien solide sur le développement Web, les bibliothèques et les cadres riches, les performances élevées et l'évolutivité, la compatibilité multiplateforme et la rentabilité. 1) Facile à apprendre et à utiliser, adapté aux débutants; 2) une bonne intégration avec les serveurs Web et prend en charge plusieurs bases de données; 3) ont des cadres puissants tels que Laravel; 4) Des performances élevées peuvent être obtenues grâce à l'optimisation; 5) prendre en charge plusieurs systèmes d'exploitation; 6) Open source pour réduire les coûts de développement.

PHP: une introduction au langage des scripts côté serveur PHP: une introduction au langage des scripts côté serveur Apr 16, 2025 am 12:18 AM

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

PHP vs Python: cas d'utilisation et applications PHP vs Python: cas d'utilisation et applications Apr 17, 2025 am 12:23 AM

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.

PHP et Python: une plongée profonde dans leur histoire PHP et Python: une plongée profonde dans leur histoire Apr 18, 2025 am 12:25 AM

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Impact de PHP: développement Web et au-delà Impact de PHP: développement Web et au-delà Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP et le Web: explorer son impact à long terme PHP et le Web: explorer son impact à long terme Apr 16, 2025 am 12:17 AM

PHP a façonné le réseau au cours des dernières décennies et continuera de jouer un rôle important dans le développement Web. 1) PHP est originaire de 1994 et est devenu le premier choix pour les développeurs en raison de sa facilité d'utilisation et de son intégration transparente avec MySQL. 2) Ses fonctions principales incluent la génération de contenu dynamique et l'intégration à la base de données, ce qui permet au site Web d'être mis à jour en temps réel et affiché de manière personnalisée. 3) La large application et l'écosystème de PHP ont motivé son impact à long terme, mais il fait également face à des mises à jour de version et à des défis de sécurité. 4) Les améliorations des performances ces dernières années, telles que la sortie de PHP7, lui permettent de rivaliser avec les langues modernes. 5) À l'avenir, PHP doit faire face à de nouveaux défis tels que la conteneurisation et les microservices, mais sa flexibilité et sa communauté active le rendent adaptable.

See all articles