Copy the code The code is as follows:
? & Lt;? PHP/*
* PHP SMTP Send the mail scoket class
* zhozphpsmtpsendmail.php
* created on 2008/09/02 zhoz.com
@Author zhoz
* v 1.72 2008/09/26 zhoz .Com
*/
class ZhozPhpSmtpSendMail {
//Your SMTP server provider, which can be a domain name or IP address
var $smtp = "";
//SMTP requires authentication. Set the value to 1, no authentication is required. The value is 0. Most SMTP service providers now require verification. If you are not sure, please contact your SMTP service provider.
var $check = 1;
//Your email account name
var $username = "";
//Your email password
var $password = "";
//This email must be on the sending server email
var $s_from = "";
/*
* Function: Initialization settings for sending emails
* $from Is your email 衿魃 from Naoshi?
* $password Your email password
* $smtp Your SMTP Server provider, which can be a domain name or IP address
* $check SMTP requires authentication, set the value to 1, does not require authentication, set the value to 0, most SMTP service providers now require verification
*/
function ZhozPhpSmtpSendMail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^d-_][w-]*[^-_]@[^-][a-zA-Zd-]+ [^-](.[^-][a-zA-Zd-]*[^-])*.[a-zA-Z]{2,3}/", $from ) ) {
$this- >username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this- >smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* Function: Send email
* $to target email
* $from source Email
* $subject email title
* $message email content
*/
function zhoz_send ($to, $from, $subject, $message) {
//Connect to server
$fp = fsockopen ( $this->smtp , 25, $errno, $errstr, 60);
if (!$fp ) return "Failed to connect to server".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "Error message 1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."rn";
else $lastact="HELO ".$yourname."rn";
fputs($fp, $lastact);
$lastmessage == fgets ($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "Error message 2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp, 512);
if ( (substr($lastmessage,3,1) != "-") or (emptyempty($lastmessage)) )
break;
}
//Authentication
if ($this->check == "1") {
//Verification starts
$lastat="AUTH LOGIN"."rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if ( substr($lastmessage,0,3) != 334) return "Error message 3:$lastmessage".__LINE__;
//User name
$lastact=base64_encode($this->username)."rn";
fputs ( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "Error message 4:$lastmessage".__LINE__;
/ /User password
$lastact=base64_encode($this->password)."rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage ,0,3) != "235") return "Error message 5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: s_from . " >rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "Error message 6:$ lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp, 512);
if (substr($lastmessage,0,3) != 250) return "Error message 7:$lastmessage".__LINE__;
//DATA
$lastact="DATArn";
fputs($fp, $ lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "Error message 8:$lastmessage".__LINE__;
//Processing Subject header
$head="Subject: $subjectrn";
$message = $head."rn".$message;
//Process From header
$head="From: $fromrn";
$message = $head.$message ;
//Process To header
$head="To: $torn";
$message = $head.$message;
//Add the end string
$message .= "rn.rn";
//Send Message
fputs($fp, $message);
$lastat="QUITrn";
fclose($fp);
error_log("send over------->ok!!", 0);
return true;
}
}
?>
/*
* php smtp send email Scoket class
* ZhozPhpSmtpSendMail.php
* Created on 2008/09/02 zhoz.com
* @author zhoz
* v 1.72 update 2008/09/26 zhoz.Com
*/
class ZhozPhpSmtpSendMail {
//Your SMTP server provider, which can be a domain name or IP address
var $smtp = "";
//SMTP requires identity The authentication value is set to 1, and the authentication value is 0. Most SMTP service providers now require verification. If you are not sure, please contact your SMTP service provider.
var $check = 1;
//Your email account name
var $username = "";
//Your email password
var $password = "";
//This email must be on the sending server email
var $s_from = "";
/*
* Function: Initialization settings for sending messages
* $from Your email address on the sending server
* $password Your email password
* $smtp Your SMTP server provider , can be a domain name or IP address
* $check SMTP requires authentication, set the value to 1, does not require authentication, the value is 0, most SMTP service providers now require verification
*/
function ZhozPhpSmtpSendMail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^d-_][w-]*[^-_]@[^-][a-zA-Zd-]+[^- ](.[^-][a-zA-Zd-]*[^-])*.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp ;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* Function: Send email
* $to target email
* $from source email
* $subject email title
* $message email content
*/
function zhoz_send ($to, $from, $subject, $message) {
//Connect to server
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "Failed to connect to server".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr ($lastmessage,0,3) != 220 ) return "Error message 1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1" ) $lastact="EHLO ".$yourname."rn";
else $lastact="HELO ".$yourname."rn";
fputs($fp, $lastact);
$lastmessage == fgets($fp ,512);
if (substr($lastmessage,0,3) != 220 ) return "Error message 2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//Authentication
if ($this->check==" 1") {
//Verification starts
$lastat="AUTH LOGIN"."rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($ lastmessage,0,3) != 334) return "Error message 3:$lastmessage".__LINE__;
//User name
$lastact=base64_encode($this->username)."rn";
fputs( $fp , $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "Error message 4:$lastmessage".__LINE__;
//User password
$lastact=base64_encode($this->password)."rn";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0, 3) != "235") return "Error message 5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: s_from . ">rn ";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "Error message 6:$lastmessage". __LINE__;
//TO:
$lastat="RCPT TO: rn";
fputs( $fp, $lalastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "Error message 7:$lastmessage".__LINE__;
//DATA
$lastact="DATArn";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "Error message 8:$lastmessage".__LINE__;
//Processing Subject header
$head= "Subject: $subjectrn";
$message = $head."rn".$message;
//Process From header
$head="From: $fromrn";
$message = $head.$message;
/ /Process To header
$head="To: $torn";
$message = $head.$message;
//Add the end string
$message .= "rn.rn";
//Send message
fputs ($fp, $message);
$lastat="QUITrn";
fclose($fp);
error_log("send over------->ok!!", 0);
return true;
}
}
?>
The test method is the same.
Run the code to view the code Copy the code to print About
/**
* ZhozPhpSmtpSendMail.php
* Created on 2008/09/02 zhoz.com
* php smtp send mail class
* Replace mail(): because it reports an error, I don’t want to
*/
// Configure the sending server information here. It can be used normally if you do not change it:
$from = 'zhoz@zhoz. com'; // The email on your sending server
$password = 'zhoz'; // Your email password
$smtp = 'smtp.zhoz.com'; // Your SMTP server provider, which can be Domain name or IP address
// Class initialization
$zhoz_obj = new ZhozPhpSmtpSendMail($from, $password, $smtp);
// Start sending
$status = $zhoz_obj->zhoz_send("zhoz008@126.com", "zhoz@zhoz.com", "subject is zhoz", "body is zhoz.com");
if($status) {
echo $status;
echo "no---------";
} else {
echo "send ok-----------------!";
die;
}
// The result is of course: send ok------- ----------!
?>
The above introduces aphex twin php Socket method for sending emails under win, including the content of aphex twin. I hope it will be helpful to friends who are interested in PHP tutorials.

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
