php发邮件

@Ta 2021-05-06发布,2021-05-06修改 2922点击
<?php
/*
使用前先设置发信服务器、邮箱、密码、编码。

php邮件发送函数sendmail(收件地址,标题,内容)说明:
收件地址可以是多个邮箱,用分号(;)隔开。
返回值:成功发送的邮件数。
调试:把本文件内echo前面的注释去掉即可
*/


function sendmail($to, $subject,$body)
{
$smtp_host=""; //smtp服务器
$user=""; //发信邮箱
$pass=""; //邮箱密码
$charset="utf-8"; //根据自己的网页编码选择

$header= "MIME-Version:1.0\r\n";
$header.= "Content-Type:text/html; charset=".$charset."\r\n";
$header.= "To: ".$to."\r\n";
$header.= "From: ".$user."\r\n";
$header.= "Subject: "."=?".strtoupper($charset)."?B?".base64_encode($subject)."?="."\r\n";
$header.= "Date: ".date("r")."\r\n";
$header.= "X-Mailer: By PHP(".phpversion().")\r\n";
list($msec, $sec) = explode(" ", microtime());
$header.= "Message-ID: ".date("YmdHis", $sec).".".$msec."\r\n";

$sent = 0;
$to_arr = explode(";", $to);
foreach ($to_arr as $rcpt_to)
{
$sock = @fsockopen($smtp_host, 25, $errno, $errstr, 10);
  
if ($sock && smtp_ok($sock)) {
if (smtp_cmd($sock,"HELO localhost"))
if (smtp_cmd($sock,"AUTH LOGIN ".base64_encode($user))) 
if (smtp_cmd($sock,base64_encode($pass)))
if (smtp_cmd($sock,"MAIL FROM:<".$user.">")) 
if (smtp_cmd($sock,"RCPT TO:<".$to.">"))
if (smtp_cmd($sock,"DATA")) 
if (smtp_data($sock,$header,$body)) 
if (smtp_cmd($sock,"QUIT")) 
$sent++;

fclose($sock);
}
}
return $sent;
}


function smtp_cmd($sock,$cmd)
{
fputs($sock, $cmd."\r\n");
//echo htmlspecialchars($cmd);
return smtp_ok($sock);
}


function smtp_data($sock,$header,$body)
{
fputs($sock,$header."\r\n");    
fputs($sock,$body."\r\n.\r\n");
return smtp_ok($sock);
}


function smtp_ok($sock)
{
$response = fgets($sock, 512);
if (!preg_match("/^[23]/", $response))
{
fputs($sock, "QUIT\r\n");
fgets($sock, 512);
return FALSE;
}
//echo("<br>".$response."<br><br>");
return TRUE;
}
?>

调用

<?php 
$e=$_POST[e];
$b=$_POST[b];
$n=$_POST[n];
include("e-mail.php");
sendmail($e,$b,$n);
?>
本消息来自粉金版 爱欧博客
回复列表(4|隐藏机器人聊天)
添加新回复
回复需要登录