Home  >  Article  >  Backend Development  >  php function to send emails using sock technology_PHP tutorial

php function to send emails using sock technology_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:54:35753browse

Use sock technology to send emails without server support. Fast! !

Copy code The code is as follows:

function send_mail($to,$subject,$body)
{
//////////////Smtp information can be modified to yours, /// ///////
$loc_host = "longbill"; //Sending computer name, optional
$smtp_acc = "longbill.mail"; //Smtp authenticated username,
$ smtp_pass = "longbill"; //Smtp authentication password,
$smtp_host = "smtp.163.com"; //SMTP server address,
$from = "longbill.mail@163.com"; / /Must correspond to smtp information, otherwise it will fail
//////////////Smtp information ends///////////////////// /////////////
$headers = "Content-Type: text/plain; charset="gb2312"rnContent-Transfer-Encoding: base64";
$lb="rn "; "; /","..",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, expecting 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 and expect a return of 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, expecting 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 an empty OK, end Header sending
$smtp[] = array($lb,"","");
//8.5. Send the 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: ");
//10. Send Quit, exit, and expect to return 221
$smtp[] = array("QUIT".$lb, "221", "QUIT error: ");
//Open the smtp server port
$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 the command/data in the smtp array
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)))                                               🎜> }
}
//Close the connection
@fclose($fp);
if ($result_str==""){return "Sent successfully!!";}else {return $ result_str;} 
}





http://www.bkjia.com/PHPjc/318466.html
www.bkjia.com

truehttp: //www.bkjia.com/PHPjc/318466.htmlTechArticleUse sock technology to send emails without server support. Fast! ! Copy the code as follows: functionsend_mail($to,$subject,$body) { /////////////Smtp information, you can modify it to yours...
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