Use sock technology to send emails without server support. high speed! !
Copy code The code is as follows:
function send_mail($to,$subject,$body)
{
/////////////Smtp information, you can modify it to yours, ///////////
$ LOC_HOST = "Longbill"; // Send a computer name, you can at will
$ smtp_acc = "Longbill.mail"; // SMTP certified user name,
$ smtp_pass = "longbill"; // SMTP certified password,
$smtp_host = "smtp.163.com"; //SMTP server address,
$from = "longbill.mail@163.com"; //Must correspond to smtp information, otherwise it will fail
/////// //////End of Smtp information///////////////////////////////////
$headers = "Content- Type: text/plain; charset="gb2312"rnContent-Transfer-Encoding: base64";
$lb="rn"; //linebreak
$hdr = explode($lb,$headers); //Parsed hdr
if($body)
{
$bdy = preg_replace("/^./","..",explode($lb,$body));
}//Parsed Body
$smtp = array(
//1. EHLO, expect to return 220 or 250
array("EHLO ".$loc_host.$lb, "220,250", "HELO error: "),
//2. Send Auth Login, expect to return 334
array ("AUTH LOGIN".$lb,"334","AUTH error:"),
//3. Send the Base64-encoded username, expecting to return 334
array(base64_encode($smtp_acc).$lb,"334 ","AUTHENTIFICATION error : "),
//4. Send the Base64-encoded password, expecting to return 235
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
/ /5. Send Mail From, expecting to return 250
$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
//6. Send Rcpt To.Expect to return 250
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
//7. Send DATA, Expect to return 354
$smtp[] = array("DATA".$lb,"354","DATA error: ");
//8.0, send From
$smtp[] = array("From: ".$ from.$lb,"","");
//8.2. Send To
$smtp[] = array("To: ".$to.$lb,"","");
//8.1. Send title
$smtp[] = array("Subject: ".$subject.$lb,"","");
//8.3. Send other Header content
foreach($hdr as $h) {$smtp[ ] = array($h.$lb,"","");}
//8.4. Send a blank line to end the header sending
$smtp[] = array($lb,"","");
//8.5. Sending letter body
if($bdy)
{
foreach($bdy as $b)
{
$smtp[] = array(base64_encode($b.$lb).$lb,""," ");
}
}
//9. Send "." to indicate the end of the letter, and expect a return of 250
$smtp[] = array(".".$lb,"250","DATA(end)error: " ; fp = @fsockopen($smtp_host, 25);
if (!$fp) echo "Error: Cannot conect to ".$smtp_host."
";
while($ result = @fgets($fp, 1024))
{
if(substr($result,3,1) == " ") { break; }
}
$result_str="";
//Send smtp array Command/data
foreach($smtp as $req)
{
//Send information
@fputs($fp, $req[0]);
//If you need to receive information returned by the server, then
if($req [1])
{
//Receive information
while($result = @fgets($fp, 1024))
{ if(substr($result,3,1) == " ") { break; }
}
if (!strstr($req[1],substr($result,0,3)))
{ $result_str.=$req[2].$result."
";
}
}
}
//Close the connection
@fclose($fp);
if ($result_str==""){return "Sent successfully!!";}else {return $result_str;}
}
The above introduces the function of slysoft virtual clonedrive php to send emails using sock technology, including the content of slysoft virtual clonedrive. I hope it will be helpful to friends who are interested in PHP tutorials.