php发送电子邮件email实例代码

php发送电子邮件email实例代码

1856发表于2015-06-10

网站中经常要用到发送邮件的功能,比如注册邮箱验证,找回密码等等。今天我来分享一下php发送电子邮件email实例代码:

<?php
$bfconfig = Array (
 'sitename' => '蓝狐软件工作室www.lanhusoft.com',
 );
$mail = Array (
 'state' => 1,
 'server' => 'smtp.163.com',
 'port' => 25,
 'auth' => 1,
 'username' => 'lanhusoft@163.com',
 'password' => 'lanhuseo',
 'charset' => 'gbk',
 'mailfrom' => 'lanhusoft@163.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('2351310751@qq.com','蓝狐seo团队管理系统www.lanhuseo.com','我们致力于seo管理软件,SEO/SEM数据监控、站群SEO数据监控,SEO排名管理系统,SEO/SEM团队任务管理系统化、专业化,随时掌握团队SEO/SEM进程和网站SEO/SEM优化效果,为行业提供完美解决方案(SEO辅助工具,SEO相关管理系统等)和SEO外包服务。');
echo 'success!';
?>


小编蓝狐