PHP SMTP发送邮件函数
php代码
$bfconfig = Array ( 'sitename' => '网站名称', ); $mail = Array ( 'state' => 1, 'server' => 'smtp.abc.com', 'port' => 25, 'auth' => 1, 'username' => 'admin@abc.com', 'password' => '123456', 'charset' => 'gbk', 'mailfrom' => 'admin@abc.com' ); function sendmail($mail_to, $mail_subject, $mail_message) { global $mail, $bfconfig; date_default_timezone_set('PRC'); $mail_subject = '=?'.$mail['charset'].'?B?'.base64_encode($mail_subject).'?='; $mail_message = chunk_split(base64_encode(preg_replace("/(^|(\r\n))(\.)/", "\1.\3", $mail_message))); $headers .= ""; $headers .= "MIME-Version:1.0\r\n"; $headers .= "Content-type:text/html\r\n"; $headers .= "Content-Transfer-Encoding: base64\r\n"; $headers .= "From: ".$bfconfig['sitename']."<".$mail['mailfrom'].">\r\n"; $headers .= "Date: ".date("r")."\r\n"; list($msec, $sec) = explode(" ", microtime()); $headers .= "Message-ID: <".date("YmdHis", $sec).".".($msec * 1000000).".".$mail['mailfrom'].">\r\n"; if(!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) { exit("CONNECT - Unable to connect to the SMTP server"); } stream_set_blocking($fp, true); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != '220') { exit("CONNECT - ".$lastmessage); } fputs($fp, ($mail['auth'] ? 'EHLO' : 'HELO')." befen\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) { exit("HELO/EHLO - ".$lastmessage); } while(1) { if(substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) { break; } $lastmessage = fgets($fp, 512); } if($mail['auth']) { fputs($fp, "AUTH LOGIN\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 334) { exit($lastmessage); } fputs($fp, base64_encode($mail['username'])."\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 334) { exit("AUTH LOGIN - ".$lastmessage); } fputs($fp, base64_encode($mail['password'])."\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 235) { exit("AUTH LOGIN - ".$lastmessage); } $email_from = $mail['mailfrom']; } fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { exit("MAIL FROM - ".$lastmessage); } } foreach(explode(',', $mail_to) as $touser) { $touser = trim($touser); if($touser) { fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n"); $lastmessage = fgets($fp, 512); exit("RCPT TO - ".$lastmessage); } } } fputs($fp, "DATA\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 354) { exit("DATA - ".$lastmessage); } fputs($fp, $headers); fputs($fp, "To: ".$mail_to."\r\n"); fputs($fp, "Subject: $mail_subject\r\n"); fputs($fp, "\r\n\r\n"); fputs($fp, "$mail_message\r\n.\r\n"); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { exit("END - ".$lastmessage); } fputs($fp, "QUIT\r\n"); }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
在哪里可以找到原子中的起重机控制钥匙卡
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)