smtp? ?? ???? ??? ?? ?? PHP ???? smtown, ??? ??
Jul 29, 2016 am 08:36 AMsmtp.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;
????/*?????*/
?????? smtp($relay_host?=?"",?$smtp_port?=?25,$auth?=?false,$user,$pass)
????{
????????$this->debug?= ??;
????????$this->smtp_port?=?$smtp_port;
????????$this->relay_host?=?$relay_host;
????????$this->time_out?=?30;?//fsockopen()?? ???
????????$this->auth?=?$auth;//auth
????????$this->user?=?$user;
????????$this->pass?=?$pass;
????????$this->host_name?=?"localhost";?//HELO ??? ???
???????$this->log_file?=?"";
????????$this->sock?=???;
}
????/*??? ???*/
?????? sendmail($to,?$from,?$subject?=?"",?$body?=?"",?$mailtype,?$cc?="",?$bcc?=" ",?$additional_headers?=?"")
????{
????????$mail_from?=?$this->get_address($this->strip_comment($from));
????????$body?=?ereg_replace("(^|(rn))(.)",?"1.3",?$body);
????????$header?.=?"MIME ??:1.0rn";
????????if($mailtype=="HTML")
????????{
????????????$header?.=?"Content-Type:text/htmlrn";
????????}
????????$header?.=?"?? ??:?".$to."rn";
????????if?($cc?!=?"")?
????????{
????????????$header?.=?"Cc:?".$cc."rn";
????????}
????????$header?.=?"?? ??:?$from<".$from.">rn";
????????$header?.=?"??:?".$subject."rn";
????????$header?.=?$additional_headers;
????????$header?.=?"??:?".date("r")."rn";
????????$header?.=?"X-Mailer:By Redhat(PHP/".phpversion().")rn";
????????list($msec,?$sec)?=?explode("?",?microtime());
????????$header?.=?"??? ID:?<".date("YmdHis",?$sec).".".($msec*1000000).".".$mail_from.">rn";
????????$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("??: ".$rcpt_to."n?? ???? ?? ? ????.") ;
????????????????$sent?=?FALSE;
?????????????????????.
???????????}
????????????if?($this->smtp_send($this->host_name,?$mail_from,?$rcpt_to,?$header,?$body))?
????????????{??????$this->log_write( "???? <".$rcpt_to.">n?? ???????.");
???????????}?
????????????else?
????????????{
??????????????$this->log_write("??: <".$rcpt_to? ???? ?? ? ????.">n ");
????????????????$sent?=?FALSE;
????????????}
????????????fclose($this->sock);
????????????$this->log_write("?? ????? ??? ??????.");
????????}
????????$sent? ??;
????}
????/*????????*/
?????? smtp_send($helo,?$from,?$to,?$header,?$body?=?"")
????{
????????if?(!$this- >smtp_putcmd("HELO",?$helo))?
????????{
????????????return $this->smtp_error("HELO ?? ?? ?");
????????}
????????#auth
????????if($this->auth)
????????{
???????????if?(!$this->smtp_putcmd("AUTH?LOGIN",?base64_en ??($this-> user)))?
????????????{
????????????????return $this->smtp_error("HELO ?? ?? ?");
????????????}
????????????if?(!$this->smtp_putcmd("",?base64_encode($this->pass)))?
????????????{ this->smtp_error("HELO ??? ??? ? ");
????????????}
????????}
????????if?(!$this->smtp_putcmd("MAIL",?"FROM:<".$from.">"))?
????????{
????????????return $this->smtp_error("sending MAIL FROM ??');
????????}
????????if?(!$this->smtp_putcmd("RCPT",?"TO:<".$to.">"))?
????????{
????????????return?$this-> smtp_error("RCPT TO ?? ???");
????????}
????????if?(!$this->smtp_putcmd("DATA"))
????????{
????????????return $this->smtp_error("DATA ?? ?? ?");
????????}
????????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("QUIT ?? ???");
????????}
????????TRUE? ?????.
????}
?????? smtp_sockopen($address)
????{
????????if?($this->relay_host?==?"")?
?????????{ ;smtp_sockopen_mx($?? );
????????}?
????????else
????????{
????????????return $this->smtp_sockopen_relay();
????????}
????}
?????? smtp_sockopen_relay()
????{
????????$this->log_write("".$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("??: ??? ???? ??? ? ????.".$this ->relay_host."n");
????????????$this->log_write("??:?".$errstr."?(".$errno.")n");
????????????FALSE? ?????.
????????}
????????$this->log_write("??? ???? ???????.".$this->relay_host."n");
????????TRUE? ?????.
????}
?????? smtp_sockopen_mx($address)
????{
????????$domain?=?ereg_replace("^. @([^@] )$",?"1",?$address);
????????if?(!@getmxrr($domain,?$MXHOSTS))?
????????{
???????????$this->log_write("??: MX? ??? ? ????."".$domain.""n");
????????????FALSE? ?????.
????????}
????????foreach?($MXHOSTS?as?$host)?
????????{
???????????$this->log_write("".$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("??: mx ???? ??? ? ????.".$ ??? ."N");
???????????????$this->log_write("??:?".$errstr."?(".$errno.")n");
?????????????????????.
????????????}
???????????$this->log_write("mx ???? ???".$host."n");
????????????TRUE? ?????.
????????}
????????$this->log_write("??:??? mx ???? ??? ? ????(".implode(",?",?$MXHOSTS).")n");
????????FALSE? ?????.
????}
????function?smtp_message($header,?$body)
????{
????????fputs($this->sock,?$header."rn".$body);
????????$this->smtp_debug(">?".str_replace("rn",?"n".">?",?$header."n>?".$body."n>"));
????????TRUE? ?????.
????}
?????? smtp_eom()
????{
????????fputs($this->sock,?"rn.rn");
????????$this->smtp_debug(".?[EOM]n");
????????return $this->smtp_ok();
????}
?????? smtp_ok()
????{
????????$response?=?str_replace("rn",?"",?fgets($this->sock,?512));
????????$this->smtp_debug($response."n");
????????if?(!ereg("^[23]",?$response))?
????????{
????????????fputs($this->sock,?"QUITrn");
????????????fgets($this->sock,?512);
????????????$this->log_write("??: ?? ???? ???"".$response.""n");
????????????FALSE? ?????.
????????}
????????TRUE? ?????.
????}
?????? smtp_putcmd($cmd,?$arg?=?"")
????{
????????if?($arg?!=?"")?
????????{
???????????if($cmd=="")?
{
????????????????$cmd?=?$arg;
????????????}
????????????else
????????????{
???????????????$cmd?=?$cmd."?".$arg;
????????????}
????????}
????????fputs($this->sock,?$cmd."rn");
????????$this->smtp_debug(">?".$cmd."n");
????????return $this->smtp_ok();
????}
?????? smtp_error($string)
????{
????????$this->log_write("??: ??? ???? ??".$string.".n");
????????FALSE? ?????.
????}
?????? log_write($message)
????{
????????$this->smtp_debug($message);
????????if?($this->log_file?==?"")
????????{
????????????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("??: ?? ??? ? ? ????."".$this->log_file.""n");
???????????????FALSE;;
????????}
????????flock($fp,?LOCK_EX);
????????fputs($fp,?$message);
????????fclose($fp);
????????TRUE? ?????.
????}
????function?strip_comment($address)
????{
????????$comment?=?"([^()]*)";
????????while?(ereg($comment,?$address))?
????????{
???????????$address?=?ereg_replace($comment, "", $address);
????????}
????????$address? ?????.
????}
????function?get_address($address)
????{
????????$address?=?ereg_replace("([?trn]) ",?"",?$address);
????????$address?=?ereg_replace("^.*<(. )>.*$",?"1",?$address);
????????$address? ?????.
????}
?????? smtp_debug($message)
????{
????????if?($this->debug)?
????????{
????????????echo?$message;
????????}
????}
}
?>
測試程序
復(fù)主代碼 代碼??:
/*
??? ???????!!!
*/
require("smtp.php")
#### ################################
$smtpserver = "smtp.163.com "; //SMTP ??
$smtpserverport = 25;//SMTP ?? ??
$smtpusermail = "reterry123@163.com";//SMTP ?? ??? ???
$smtpemailto = "dxytools@gmail .com" ;//??? ??
$smtpuser = "reterry123";//SMTP ??? ??? ??
$smtppass = "014040001";//SMTP ??? ??? ????
$mailsubject = " Chinese" ;//??? ??
$mailbody = "
???
?? ??? ?? ???";//??? ??$mailtype = "HTML";//??? ??( HTML/TXT), TXT? ??? ???
################################ ## ###
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//??? true? ??? ???? ????, ??? ??? ??? ???? ??? ?????.
$smtp- >debug = TRUE;//??? ??? ??? ???? ??
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)
?>
? ??? smtp in paris php? ?? ???? ??? ???? ??? ????, smtown in paris ??? ???? ?? PHP ????? ??? ?? ????? ??? ???? ?????.

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP ?? ??? ?? ???? ?? ? ????? ??? ?????. 1. ?? ??? ??? ??? ??? ? ? ??? ??? ??? ?? ?? ??? ???? ???????. 2. ?? ??? ???? ???? ? ?? ????? ?? ?? ?? ??? ?????. 3. $ _get ? $ _post? ?? Hyperglobal ??? ?? ???? ?? ??? ? ??? ??? ??????? ???????. 4. ?? ?? ?? ???? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ??? ???????. ??? ??? ????? ??? ??? ?? ???? ????? ? ??? ? ? ????.

PHP ?? ???? ???? ????? ?? ? ??? ???? ?? ?? ? ??? ???? ?? ??? ?????? ??? ??? ? ? ???????. 1. ??? ?? CSRF? ???? ?? ??? ??? ???? ?????? ??? ???? FINFO_FILE? ?? ?? MIME ??? ?????. 2. ??? ??? ??? ???? ??? ?? ??? ?? ? WEB ????? ??? ???? ??????. 3. PHP ?? ??? ?? ? ?? ???? NGINX/APACHE? ??? ????? ?? ???? ?????. 4. GD ?????? ??? ? ?? ???? ??? ?? ??? ?? ????.

PHP ?? ???? ? ?? ???? ??? ????. 1. // ?? #? ???? ? ?? ??? ???? // ???? ?? ????. 2. ?? /.../ ?? ?? ?? ??? ????? ?? ? ?? ??? ?? ? ? ????. 3. ?? ?? ?? / if () {} /? ?? ?? ??? ????? ??? ?? ?? ?? ??? ???? ????? ???? ??? ?? ???? ???? ??? ? ??? ??????.

Ageneratorinphpisamemory- ???? Way-Erate-Overgedatasetsetsbaluesoneatimeatimeatimeatimallatonce.1.generatorsuseTheyieldKeywordTocroadtOpvaluesondemand, RetingMemoryUsage.2

PHP ??? ???? ??? ??? ??? ????? ????. ??? ????? ?? ???? ??? "?? ? ?"??? "?"? ???????. 1. ??? ? ??? ??? DocBlock (/*/)? ?? ?? ??? ???? ??? ? ?? ???? ??????. 2. JS ??? ???? ?? ???? ??? ?? ??? ??? ?????. 3. ??? ?? ?? ?? ??? ???? ????? ????? ???? ?? ????? ???? ? ??????. 4. Todo ? Fixme? ????? ???? ? ? ??? ??? ???? ?? ?? ? ??? ???????. ??? ???? ?? ??? ??? ?? ?? ?? ???? ???? ? ????.

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled

PHP??? ???? ??? ?? ?? ????? ???? ??? ?? ??? ??? ?? ? ??? ??? ???? ?????. ???? 0?? ???? ?? ??? ???? ? ?? ???? ?? ?? ? ? ????. MB_SUBSTR? ?? ??? ??? ???????. ? : $ str = "hello"; echo $ str [0]; ?? H; ??? MB_SUBSTR ($ str, 1,1)? ?? ??? ??? ??? ??????. ?? ???????? ???? ??? ???? ?? ???? ?? ?? ???? ?????? ??? ????? ?? ??? ?? ??? ???? ???? ?? ????.

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. ??, downloadandinstallxAmpp, selectComponents, startApache ? placefilesinhtdocs.2
