第一步: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
}
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 ) ;
?>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中