1. <button id="qzuct"><tr id="qzuct"></tr></button>
          1. <rp id="qzuct"><object id="qzuct"><input id="qzuct"></input></object></rp>

            <rp id="qzuct"></rp>
            1. <th id="qzuct"><pre id="qzuct"></pre></th>

              您现在的位置:首页 > 开源代码 > PHP SMTP发送邮件函数

              PHP SMTP发送邮件函数

              $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");
              
              }

              使用方法 sendmail('发送地址', '邮件主题', '邮件内容')

              相关标签:  PHP , SMTP , 发送 , 邮件 , 函数

              发布时间: 2012-11-02 10:45:34

              浏览次数: 12970

              三级4级全黄60分钟_gay欧美男男gv片在线观看_亚洲成av人在线观看网址_清纯女仆装自慰流白汁