欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

PHP 发送smtp邮件邮箱实例代码

(元素模板) / 2022-02-16 09:49
PHP 发送smtp邮件邮箱实例代码

复制下面代码,修改邮箱帐号密码和接收帐号即可

/**
 
* smtp邮件发送函数
 
* site www.ys720.com
 
使用方法 sendmail('发送地址', '邮件主题', '邮件内容')
 
*/
 
$bfconfig = Array (
 
'sitename' => '脚本学堂', //这里填写网站名称
 
);
 
$mail = Array (
 
'state' => 1,
 
'server' => 'smtp.163.com',
 
'port' => 25,
 
'auth' => 1,
 
'username' => '123123@163.com', //发送邮箱帐号
 
'password' => '123123', //邮箱密码
 
'charset' => 'utf',
 
'mailfrom' => 'jrtaobao@qq.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']."\r\n";
 
$headers .= "Date: ".date("r")."\r\n";
 
list($msec, $sec) = explode(" ", microtime());
 
$headers .= "Message-ID: \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: .*/", "\\1", $email_from).">\r\n");
 
$lastmessage = fgets($fp, 512);
 
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "MAIL FROM: .*/", "\\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: .*/", "\\1", $touser).">\r\n");
 
$lastmessage = fgets($fp, 512);
 
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "RCPT TO: .*/", "\\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");
 
}
Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com