Home >Backend Development >PHP Tutorial >slysoft virtual clonedrive php function that uses sock technology to send emails

slysoft virtual clonedrive php function that uses sock technology to send emails

WBOY
WBOYOriginal
2016-07-29 08:37:071353browse

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.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn