澳门新萄京使用PHPMailer实现邮件发送代码分享,
分类:www.澳门新萄京赌场

163邮箱大家都使用过吧,那么基于php如何实现163邮箱自动发送邮件功能呢,下面脚本之家小编给大家分享具体实现代码:

本文实例讲述了phpmailer简单发送邮件的方法。分享给大家供大家参考,具体如下:

澳门新萄京 1

本文实例讲述了PHP实现发送邮件的方法。分享给大家供大家参考,具体如下:

本文实例讲述了phpmailer绑定邮箱的实现方法。分享给大家供大家参考,具体如下:

想给大家展示下效果图:

首先,点击此处本站下载.rar)相应的php文件

发送邮件是常用的功能,LZ今天在项目中也碰到了,特此分享一下。

邮件发送类

效果如下:

澳门新萄京 2

解压后有2个php文件(2个类)  1个html文件(API)

首先,去下载PHPMailer

<?php 
/*邮件发送类 
*功能:使用smtp服务器发送邮件 
*/ 
class smtp { 
 /* 全局变量 */ 
 var $smtp_port; 
 var $time_out; 
 var $host_name; 
 var $log_file; 
 var $relay_host; 
 var $debug; 
 var $auth; 
 var $user; 
 var $pass; 
 var $sock; 
 /* 构造函数 */ 
 function smtp($relay_host = "", $smtp_port = 25, $auth = false, $log_file="", $user="", $pass="") { 
  $this->debug = FALSE; 
  $this->smtp_port = $smtp_port; 
  $this->relay_host = $relay_host; 
  $this->time_out = 30; //is used in fsockopen() 
  $this->auth = $auth; //auth 
  $this->user = $user; 
  $this->pass = $pass; 
  $this->host_name = "localhost"; //is used in HELO command 
  $this->log_file = $log_file; //邮件发送成功失败的日志记录文件  
  $this->sock = FALSE; 
 } 
 function mail_encode($str) 
 { 
  //return '=?utf-8?B?'.base64_encode(mb_convert_encoding($str, "GBK", "UTF-8")).'?='; 
  return "=?UTF-8?B?".base64_encode($str)."?=";
 } 
 /* 主函数,发送邮件 */ 
 function sendmail($flag, $boundary, $to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "") { 
  $mail_from = $this->get_address ( $this->strip_comment ( $from ) ); 
  $body = ereg_replace ( '(^|(rn))(.)', "1.3", $body ); 
  $header = "MIME-Version:1.0rn"; 
  if ($mailtype == "HTML") { 
   if ($flag == 2) { 
    $header .= "Content-Type:multipart/mixed; boundary= $boundaryrn"; 
   } else { 
    $header .= "Content-Type:text/html; charset="UTF-8" rn"; 
   } 
  } 
  $header .= "To: " . $to . "rn";   
  if ($cc != "") { 
   $header .= "Cc: " . $cc . "rn"; 
  }  
  $header .= "From: $from<" . $from . ">rn"; 
  $subject = self::mail_encode($subject); 
  $header .= "Subject: " . $subject . "rn"; 
  $header .= $additional_headers; 
  $header .= "Date: " . date ( "r" ) . "rn"; 
  $header .= "X-Mailer:By redhat (PHP/" . phpversion () . ")rn"; 
  list ( $msec, $sec ) = explode ( " ", microtime () );  
  $header .= "Message-ID: <" . date ( "YmdHis", $sec ) . "." . ($msec * 1000000) . "." . $mail_from . ">rn";  
  $TO = explode ( ",", $this->strip_comment ( $to ) );  
  if ($cc != "") { 
   $TO = array_merge ( $TO, explode ( ",", $this->strip_comment ( $cc ) ) ); 
  }  
  if ($bcc != "") { 
   $TO = array_merge ( $TO, explode ( ",", $this->strip_comment ( $bcc ) ) ); 
  }   
  $sent = TRUE;   
  foreach ( $TO as $rcpt_to ) { 
   $rcpt_to = $this->get_address ( $rcpt_to );   
   if (! $this->smtp_sockopen ( $rcpt_to )) { 
    $this->log_write ( "Error: Cannot send email to " . $rcpt_to . "n" ); 
    $sent = FALSE; 
    continue; 
   }   
   if ($this->smtp_send ( $this->host_name, $mail_from, $rcpt_to, $header, $body )) { 
    $this->log_write ( "E-mail has been sent to <" . $rcpt_to . ">n" ); 
   } else { 
    $this->log_write ( "Error: Cannot send email to <" . $rcpt_to . ">n" ); 
    $sent = FALSE; 
   } 
   fclose ( $this->sock ); 
   $this->log_write ( "Disconnected from remote hostn" ); 
  } 
  return $sent; 
 } 
 /* 私有函数 */ 
 function smtp_send($helo, $from, $to, $header, $body = "") { 
  if (! $this->smtp_putcmd ( "HELO", $helo )) { 
   return $this->smtp_error ( "sending HELO command" ); 
  } 
  if ($this->auth) { 
   if (! $this->smtp_putcmd ( "AUTH LOGIN", base64_encode ( $this->user ) )) { 
    return $this->smtp_error ( "sending HELO command" ); 
   } 
   if (! $this->smtp_putcmd ( "", base64_encode ( $this->pass ) )) { 
    return $this->smtp_error ( "sending HELO command" ); 
   } 
  } 
  if (! $this->smtp_putcmd ( "MAIL", "FROM:<" . $from . ">" )) { 
   return $this->smtp_error ( "sending MAIL FROM command" ); 
  } 
  if (! $this->smtp_putcmd ( "RCPT", "TO:<" . $to . ">" )) { 
   return $this->smtp_error ( "sending RCPT TO command" ); 
  } 
  if (! $this->smtp_putcmd ( "DATA" )) { 
   return $this->smtp_error ( "sending DATA command" ); 
  } 
  if (! $this->smtp_message ( $header, $body )) { 
   return $this->smtp_error ( "sending message" ); 
  } 
  if (! $this->smtp_eom ()) { 
   return $this->smtp_error ( "sending <CR><LF>.<CR><LF> [EOM]" ); 
  } 
  if (! $this->smtp_putcmd ( "QUIT" )) { 
   return $this->smtp_error ( "sending QUIT command" ); 
  } 
  return TRUE; 
 } 
 function smtp_sockopen($address) { 
  if ($this->relay_host == "") { 
   return $this->smtp_sockopen_mx ( $address ); 
  } else { 
   return $this->smtp_sockopen_relay (); 
  } 
 } 
 function smtp_sockopen_relay() { 
  $this->log_write ( "Trying to " . $this->relay_host . ":" . $this->smtp_port . "n" ); 
  $this->sock = @fsockopen ( $this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out ); 
  if (! ($this->sock && $this->smtp_ok ())) { 
   $this->log_write ( "Error: Cannot connenct to relay host " . $this->relay_host . "n" ); 
   $this->log_write ( "Error: " . $errstr . " (" . $errno . ")n" ); 
   return FALSE; 
  } 
  $this->log_write ( "Connected to relay host " . $this->relay_host . "n" ); 
  return TRUE; 
 } 
 function smtp_sockopen_mx($address) { 
  $domain = ereg_replace ( "^. @([^@] ){1}quot;, "1", $address ); 
  if (! @getmxrr ( $domain, $MXHOSTS )) { 
   $this->log_write ( "Error: Cannot resolve MX "" . $domain . ""n" ); 
   return FALSE; 
  } 
  foreach ( $MXHOSTS as $host ) { 
   $this->log_write ( "Trying to " . $host . ":" . $this->smtp_port . "n" ); 
   $this->sock = @fsockopen ( $host, $this->smtp_port, $errno, $errstr, $this->time_out ); 
   if (! ($this->sock && $this->smtp_ok ())) { 
    $this->log_write ( "Warning: Cannot connect to mx host " . $host . "n" ); 
    $this->log_write ( "Error: " . $errstr . " (" . $errno . ")n" ); 
    continue; 
   } 
   $this->log_write ( "Connected to mx host " . $host . "n" ); 
   return TRUE; 
  } 
  $this->log_write ( "Error: Cannot connect to any mx hosts (" . implode ( ", ", $MXHOSTS ) . ")n" ); 
  return FALSE; 
 } 
 function smtp_message($header, $body) { 
  fputs ( $this->sock, $header . "rn" . $body ); 
  $this->smtp_debug ( "> " . str_replace ( "rn", "n" . "> ", $header . "n> " . $body . "n> " ) ); 
  return TRUE; 
 } 
 function smtp_eom() { 
  fputs ( $this->sock, "rn.rn" ); 
  $this->smtp_debug ( ". [EOM]n" ); 
  return $this->smtp_ok (); 
 } 
 function smtp_ok() { 
  $response = str_replace ( "rn", "", fgets ( $this->sock, 512 ) ); 
  $this->smtp_debug ( $response . "n" ); 
  if (! ereg ( "^[23]", $response )) { 
   fputs ( $this->sock, "QUITrn" ); 
   fgets ( $this->sock, 512 ); 
   $this->log_write ( "Error: Remote host returned "" . $response . ""n" ); 
   return FALSE; 
  } 
  return TRUE; 
 } 
 function smtp_putcmd($cmd, $arg = "") { 
  if ($arg != "") { 
   if ($cmd == "") 
    $cmd = $arg; 
   else 
    $cmd = $cmd . " " . $arg; 
  } 
  fputs ( $this->sock, $cmd . "rn" ); 
  $this->smtp_debug ( "> " . $cmd . "n" ); 
  return $this->smtp_ok (); 
 } 
 function smtp_error($string) { 
  $this->log_write ( "Error: Error occurred while " . $string . ".n" ); 
  return FALSE; 
 } 
 function log_write($message) { 
  $this->smtp_debug ( $message ); 
  if ($this->log_file == "") { 
   return TRUE; 
  } 
  $message = date ( "M d H:i:s " ) . get_current_user () . "[" . getmypid () . "]: " . $message; 
  if (! @file_exists ( $this->log_file ) || ! ($fp = @fopen ( $this->log_file, "a" ))) { 
   $this->smtp_debug ( "Warning: Cannot open log file "" . $this->log_file . ""n" ); 
   return FALSE;
  }
  flock ( $fp, LOCK_EX );
  fputs ( $fp, $message );
  fclose ( $fp );
  return TRUE;
 }
 function strip_comment($address) {
  $comment = '[()]∗';
  while ( ereg ( $comment, $address ) ) {
   $address = ereg_replace ( $comment, "", $address );
  }
  return $address;
 }
 function get_address($address) {
  $address = ereg_replace ( "([ trn]) ", "", $address );
  $address = ereg_replace ( "^.*<(. )>.*{1}quot;, "1", $address );
  return $address;
 }
 function smtp_debug($message) {
  if ($this->debug) {
   echo $message;
  }
 }
}
?>

澳门新萄京 3

demo.html

将2个php文件放到php项目中

1、

调用邮件发送类发送邮件

澳门新萄京 4

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta charset="utf-8"> 
<title>PHP利用smtp类发送邮件范例</title> 
</head> 
<body> 
<form action="sendmail.php" method="post"> 
<p>收件人:<input type="text" name="toemail" /></p> 
<p>标  题:<input type="text" name="title" /></p> 
<p>内  容:<textarea name="content" cols="50" rows="5"></textarea></p> 
<p><input type="submit" value="发送" /></p> 
</form> 
</body> 
</html> 

简述:我这里是用一个163的邮箱发消息给126的邮箱

2、

<?php 
//文件全路径名称,文件名称 
function send_smtp_mail($file, $fileName) { 
 require ("smtp_mail.php"); 
 date_default_timezone_set ( 'Asia/Shanghai' ); 
 $subject = date ( "Y-m-d" ) . "邮件标题"; //邮件标题 
 $content = "邮件内容!"; //邮件内容 
 //$file = "/a/b/c.txt"; //附件 
 //$fileName = "email_log.log"; //附件名称 
 $smtpserver = "服务器ip"; //SMTP服务器 
 $smtpserverport = 25; //SMTP服务器端口 
 $bcc = ""; //副收件人 
 //$smtpuser = ""; //SMTP服务器的用户帐号 
 //$smtppass = ""; //SMTP服务器的用户密码 
 $smtpmailfrom = "aaa@bbb.com"; //SMTP服务器的用户邮箱,邮件发送者 
 $smtpemailto = "邮箱1,邮箱2,邮箱3"; //邮件接受者 
 $cc = ""; //抄送 
 $mailsubject = $subject; //邮件主题 
 $mailtype = "HTML"; //邮件格式(HTML/TXT),TXT为文本邮件 
 $additional_headers = ""; 
 $smtplogfile = ""; //发送邮件的日志文件,如果没有就不记录 
 // 定义分界线 
 $boundary = uniqid ( "" ); 
 $headers = "Content-type: multipart/mixed; boundary= $boundaryrn"; 
 //附件类型 
 $mimeType = "application/unknown"; 
 // 打开文件 
 $fp = fopen ( $file, "r" ); 
 // 把整个文件读入一个变量 
 $read = fread ( $fp, filesize ( $file ) ); 
 //我们用base64方法把它编码 
 $read = base64_encode ( $read ); 
 //把这个长字符串切成由每行76个字符组成的小块 
 $read = chunk_split ( $read ); 
 fclose ( $fp ); //关闭文件 
 /* 邮件发送代码 */ 
 $flag = 1; //判断使用什么样的文件头1或2 
 if ($fileName == "") { 
  //没有附件 
  $body = $content; 
 } else { 
  //有附件 
  $flag = 2; 
  if ($mailtype == "HTML") { 
   $body = "--$boundaryrn"; //此必须rn 
   $body .= "Content-Type:text/htmlrnrn"; //此必须rnrn 
   $body .= "$contentrn"; 
   $body .= "--$boundaryrn"; 
   $body .= "Content-type: $mimeType; name=$fileNamern"; 
   $body .= "Content-disposition: attachment; filename=$fileNamern"; 
   $body .= "Content-Transfer-Encoding: BASE64rnrn"; 
   $body .= "$readrnrn"; 
   $body .= "--$boundary--rn"; 
  } else { 
   $body = "--$boundaryrn"; 
   $body .= "Content-type: Content-type: text/plain; charset=iso-8859-1rnrn"; 
   $body .= "Content-transfer-encoding: 8bitrnrn"; 
   $body .= "$contentrnrn"; 
   $body .= "--$boundaryrn"; 
   $body .= "Content-type: $mimeType; name=$fileNamernrn"; 
   $body .= "Content-disposition: attachment; filename=$fileNamernrn"; 
   $body .= "Content-transfer-encoding: base64rnrn"; 
   $body .= "$readrnrn"; 
   $body .= "--$boundary--rn"; 
  } 
 } 
 $mailbody = $body; //邮件内容 
 //这里面的一个true是表示使用身份验证,否则不使用身份验证. 
 $smtp = new smtp ( $smtpserver, $smtpserverport, false, $smtplogfile ); 
 //$smtp->debug = TRUE;//是否显示发送的调试信息 
 if ($smtp->sendmail ( $flag, $boundary, $smtpemailto, $smtpmailfrom, $mailsubject, $mailbody, $mailtype, $cc, $bcc, $additional_headers )) { 
  echo ("发送成功"); 
 } else { 
  echo ("发送失败"); 
 } 
} 
?>

1.配置

sendmail.php

关键代码如下:

下载之后,将文件解压到项目目录的对应位置,将class.phpmailer.php和class.smtp.php引入项目中,看代码:(解压的文件不要删除,否则不行)

希望本文所述对大家php程序设计有所帮助。

<?php
return array (
 'email_host' => 'smtp.aliyun.com',
 'email_port' => '25',
 'email_username' => 'diandodo@aliyun.com',
 'email_password' => 'xxxxxx',
 'email_from' => 'diandodo@aliyun.com',
 'email_fromname' => '点多多',
 'email_subject' => '助店宝商户激活邮箱',
 'email_body' => "尊敬的用户{$username}您好:
    您的激活码为<font color='red'>{$code}</font>,请将激活码输入进行验证! 激活码有效期为6分钟^_^",
);
<meta charset="utf-8"> 
<?php 
/** 
* 注:本邮件类都是经过我测试成功了的,如果大家发送邮件的时候遇到了失败的问题,请从以下几点排查: 
* 1. 用户名和密码是否正确; 
* 2. 检查邮箱设置是否启用了smtp服务; 
* 3. 是否是php环境的问题导致; 
* 4. 将26行的$smtp->debug = false改为true,可以显示错误信息,然后可以复制报错信息到网上搜一下错误的原因 
*/ 
require_once "email.class.php"; 
//******************** 配置信息 ******************************** 
$smtpserver = "smtp.163.com";//SMTP服务器 
$smtpserverport =25;//SMTP服务器端口 
$smtpusermail = "onestopweb@163.com";//SMTP服务器的用户邮箱 
$smtpemailto = $_POST['toemail'];//发送给谁 
$smtpuser = "onestopweb";//SMTP服务器的用户帐号 
$smtppass = "123456";//SMTP服务器的用户密码 
$mailtitle = $_POST['title'];//邮件主题 
$mailcontent = "<h1>".$_POST['content']."</h1>";//邮件内容 
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件 
//************************ 配置信息 **************************** 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证. 
$smtp->debug = false;//是否显示发送的调试信息 
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype); 
echo "<div style='width:300px; margin:36px auto;'>"; 
if($state==""){ 
echo "对不起,邮件发送失败!请检查邮箱填写是否有误。"; 
echo "<a href='index.html'>点此返回</a>"; 
exit(); 
} 
echo "恭喜!邮件发送成功!!"; 
echo "<a href='index.html'>点此返回</a>"; 
echo "</div>"; 
?> 
<?php
  require 'class.phpmailer.php';
  $mail = new PHPMailer(true); //建立邮件发送类
  $mail->CharSet = "UTF-8";//设置信息的编码类型
  $address = "******@126.com";//收件人地址
  $mail->IsSMTP(); // 使用SMTP方式发送
  $mail->Host = "smtp.163.com"; //使用163邮箱服务器
  $mail->SMTPAuth = true; // 启用SMTP验证功能
  $mail->Username = "******@163.com"; //你的163服务器邮箱账号
  $mail->Password = "******"; // 163邮箱密码
  $mail->Port = 25;//邮箱服务器端口号
  $mail->From = "******@163.com"; //邮件发送者email地址
  $mail->FromName = "测试邮件";//发件人名称
  $mail->AddAddress("$address", "张三"); //收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
  $mail->AddAttachment("D:abc.txt"); // 添加附件(注意:路径不能有中文)
  $mail->IsHTML(true);//是否使用HTML格式
  $mail->Subject = "测试测试"; //邮件标题
  $mail->Body = "新年快乐"; //邮件内容,上面设置HTML,则可以是HTML
  if (!$mail->Send()) {
   echo "邮件发送失败. <p>";
   echo "错误原因: " . $mail->ErrorInfo;
   exit;
  }
?>
<?php 
  // 必要导入
 require("class.phpmailer.php");
 require("class.smtp.php");
 date_default_timezone_set('Asia/Shanghai');//设定时区东八区
$mail = new PHPMailer(); //建立邮件发送类

$address = "15602277510@163.com";
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->CharSet ="UTF-8";//设置编码,否则发送中文乱码
$mail->Host = "smtp.qq.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "461147874@qq.com"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "**********"; // 邮局密码

$mail->From = "461147874@qq.com"; //邮件发送者email地址
$mail->FromName = "dwqs";
$mail->AddAddress($address, "dwqs");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");

//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式

$mail->Subject = "验证邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略

if(!$mail->Send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
  } else {
  echo "Message sent!恭喜,邮件发送成功!";
  }
?>

您可能感兴趣的文章:

  • Linux服务器下PHPMailer发送邮件失败的问题解决
  • PHP插件PHPMailer发送邮件功能
  • phpmailer简单发送邮件的方法(附phpmailer源码下载)
  • phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
  • PHP实现163邮箱自动发送邮件
  • php发送邮件的问题详解
  • PHP实现自动发送邮件功能代码(qq 邮箱)

2.发送函数

澳门新萄京,email.class.php

希望本文所述对大家php程序设计有所帮助。

测试结果:

// 发送邮件
private function _sendEmail($email,$code,$username = '') {
    import('@.ORG.phpmailer');
    $mail = new PHPMailer(); //建立邮件发送类,类名不一定与引入的文件名相同
    $mail->CharSet = "UTF-8";
    $mail->IsSMTP(); // 使用SMTP方式发送
    $mail->Host = C('email_host'); // 您的企业邮局域名
    $mail->SMTPAuth = true; // 启用SMTP验证功能
    $mail->Username = C('email_username'); // 邮局用户名(请填写完整的email地址)
    $mail->Password = C('email_password'); // 邮局密码
    $mail->Port=C('email_port');
    $mail->From = C('email_from'); //邮件发送者email地址
    $mail->FromName = C('email_fromname');
    $mail->AddAddress("$email", "$username");
    $mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
    $mail->Subject = C('email_subject'); //邮件标题
    $email_body = "尊敬的用户<strong>{$username}</strong>您好:
    您的激活码为<font color='red'>{$code}</font>,请将激活码输入进行验证! 激活码有效期为6分钟^_^";
    $mail->Body = $email_body; //邮件内容,上面设置HTML,则可以是HTML
    if(!$mail->Send())
    {
      return array('status'=>2,'info'=>$mail->ErrorInfo);
    } else {
      return array('status'=>1,'info'=>'发送成功');;
    }
}
<?php 
class Smtp 
{ 
var $smtp_port; 
var $time_out; 
var $host_name; 
var $log_file; 
var $relay_host; 
var $debug; 
var $auth; 
var $user; 
var $pass; 
var $sock; 
function Smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass) 
{ 
$this->debug = FALSE; 
$this->smtp_port = $smtp_port; 
$this->relay_host = $relay_host; 
$this->time_out = 3600; 
$this->auth = $auth; 
$this->user = $user; 
$this->pass = $pass; 
$this->host_name = "localhost"; 
$this->log_file = ""; 
$this->sock = FALSE; 
} 
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "") 
{ 
$mail_from = $this->get_address($this->strip_comment($from)); 
$body = ereg_replace("(^|(rn))(.)", "1.3", $body); 
$header = "MIME-Version:1.0rn"; 
if($mailtype=="HTML"){ 
$header .= "Content-Type:text/htmlrn"; 
} 
$header .= "To: ".$to."rn"; 
if ($cc != "") { 
$header .= "Cc: ".$cc."rn"; 
} 
$header .= "From: $from<".$from.">rn"; 
$header .= "Subject: ".$subject."rn"; 
$header .= $additional_headers; 
$header .= "Date: ".date("r")."rn"; 
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")rn"; 
list($msec, $sec) = explode(" ", microtime()); 
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">rn"; 
$TO = explode(",", $this->strip_comment($to)); 
if ($cc != "") { 
$TO = array_merge($TO, explode(",", $this->strip_comment($cc))); 
} 
if ($bcc != "") { 
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc))); 
} 
$sent = TRUE; 
foreach ($TO as $rcpt_to) { 
$rcpt_to = $this->get_address($rcpt_to); 
if (!$this->smtp_sockopen($rcpt_to)) { 
$this->log_write("Error: Cannot send email to ".$rcpt_to."n"); 
$sent = FALSE; 
continue; 
} 
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) { 
$this->log_write("E-mail has been sent to <".$rcpt_to.">n"); 
} else { 
$this->log_write("Error: Cannot send email to <".$rcpt_to.">n"); 
$sent = FALSE; 
} 
fclose($this->sock); 
$this->log_write("Disconnected from remote hostn"); 
} 
return $sent; 
} 
function smtp_send($helo, $from, $to, $header, $body = "") 
{ 
if (!$this->smtp_putcmd("HELO", $helo)) { 
return $this->smtp_error("sending HELO command"); 
} 
if($this->auth){ 
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) { 
return $this->smtp_error("sending HELO command"); 
} 
if (!$this->smtp_putcmd("", base64_encode($this->pass))) { 
return $this->smtp_error("sending HELO command"); 
} 
} 
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) { 
return $this->smtp_error("sending MAIL FROM command"); 
} 
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) { 
return $this->smtp_error("sending RCPT TO command"); 
} 
if (!$this->smtp_putcmd("DATA")) { 
return $this->smtp_error("sending DATA command"); 
} 
if (!$this->smtp_message($header, $body)) { 
return $this->smtp_error("sending message"); 
} 
if (!$this->smtp_eom()) { 
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]"); 
} 
if (!$this->smtp_putcmd("QUIT")) { 
return $this->smtp_error("sending QUIT command"); 
} 
return TRUE; 
} 
function smtp_sockopen($address) 
{ 
if ($this->relay_host == "") { 
return $this->smtp_sockopen_mx($address); 
} else { 
return $this->smtp_sockopen_relay(); 
} 
} 
function smtp_sockopen_relay() 
{ 
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."n"); 
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out); 
if (!($this->sock && $this->smtp_ok())) { 
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."n"); 
$this->log_write("Error: ".$errstr." (".$errno.")n"); 
return FALSE; 
} 
$this->log_write("Connected to relay host ".$this->relay_host."n"); 
return TRUE; 
} 
function smtp_sockopen_mx($address) 
{ 
$domain = ereg_replace("^. @([^@] )$", "1", $address); 
if (!@getmxrr($domain, $MXHOSTS)) { 
$this->log_write("Error: Cannot resolve MX "".$domain.""n"); 
return FALSE; 
} 
foreach ($MXHOSTS as $host) { 
$this->log_write("Trying to ".$host.":".$this->smtp_port."n"); 
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out); 
if (!($this->sock && $this->smtp_ok())) { 
$this->log_write("Warning: Cannot connect to mx host ".$host."n"); 
$this->log_write("Error: ".$errstr." (".$errno.")n"); 
continue; 
} 
$this->log_write("Connected to mx host ".$host."n"); 
return TRUE; 
} 
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")n"); 
return FALSE; 
} 
function smtp_message($header, $body) 
{ 
fputs($this->sock, $header."rn".$body); 
$this->smtp_debug("> ".str_replace("rn", "n"."> ", $header."n> ".$body."n> ")); 
return TRUE; 
} 
function smtp_eom() 
{ 
fputs($this->sock, "rn.rn"); 
$this->smtp_debug(". [EOM]n"); 
return $this->smtp_ok(); 
} 
function smtp_ok() 
{ 
$response = str_replace("rn", "", fgets($this->sock, 512)); 
$this->smtp_debug($response."n"); 
if (!ereg("^[23]", $response)) { 
fputs($this->sock, "QUITrn"); 
fgets($this->sock, 512); 
$this->log_write("Error: Remote host returned "".$response.""n"); 
return FALSE; 
} 
return TRUE; 
} 
function smtp_putcmd($cmd, $arg = "") 
{ 
if ($arg != "") { 
if($cmd=="") $cmd = $arg; 
else $cmd = $cmd." ".$arg; 
} 
fputs($this->sock, $cmd."rn"); 
$this->smtp_debug("> ".$cmd."n"); 
return $this->smtp_ok(); 
} 
function smtp_error($string) 
{ 
$this->log_write("Error: Error occurred while ".$string.".n"); 
return FALSE; 
} 
function log_write($message) 
{ 
$this->smtp_debug($message); 
if ($this->log_file == "") { 
return TRUE; 
} 
$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message; 
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) { 
$this->smtp_debug("Warning: Cannot open log file "".$this->log_file.""n"); 
return FALSE;; 
} 
flock($fp, LOCK_EX); 
fputs($fp, $message); 
fclose($fp); 
return TRUE; 
} 
function strip_comment($address) 
{ 
$comment = "([^()]*)"; 
while (ereg($comment, $address)) { 
$address = ereg_replace($comment, "", $address); 
} 
return $address; 
} 
function get_address($address) 
{ 
$address = ereg_replace("([ trn]) ", "", $address); 
$address = ereg_replace("^.*<(. )>.*$", "1", $address); 
return $address; 
} 
function smtp_debug($message) 
{ 
if ($this->debug) { 
echo $message; 
} 
} 
} 
?> 

您可能感兴趣的文章:

  • PHPMailer使用教程(PHPMailer发送邮件实例分析)
  • PHPMailer邮件类利用smtp.163.com发送邮件方法
  • phpmailer在服务器上不能正常发送邮件的解决办法
  • Linux服务器下PHPMailer发送邮件失败的问题解决
  • PHP使用PHPMailer发送邮件的简单使用方法
  • thinkphp使用phpmailer发送邮件的方法
  • phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
  • 使用PHPMailer发送邮件实例
  • PHP借助phpmailer发送邮件
  • PHPMailer ThinkPHP实现自动发送邮件功能

澳门新萄京 5

3.生成验证码保存到session中,并发送

有关PHP实现163邮箱自动发送邮件功能小编就到此给大家介绍完了,希望对大家有所帮助!

澳门新萄京 6

// 发送邮箱激活码
public function sendActivationcode() {
    session($this->activationtime, null);
    $activationtime = session($this->activationtime);
    $email = $this->_post('email', 'trim');
    if (IS_AJAX && (!$activationtime || time() > $activationtime)) {
      $activationcode = rand(1000, 9999);
      $res = $this->_sendEmail($email,$activationcode,$this->user['username']);
      if($res['status'] == 1) {
        //设置发送限制时间
        session($this->activationtime, time()   50);
        session($this->activationcode, array('code' => $activationcode, 'time' => time()   600));
        $this->ajaxReturn(array('result' => true));
      } else {
        //发送失败写入日志文件
        $log = date('Y-m-d H:i:s') . " 发送失败:{$res['info']}" . PHP_EOL;
        file_put_contents(RUNTIME_PATH . 'Log/activationcode.log', $log, FILE_APPEND);
        $this->ajaxReturn(array('result' => false, 'error' => $res['info']));
      }
    } else {
      $this->ajaxReturn(array('result' => false, 'error' => '错误的请求'));
    }
}

您可能感兴趣的文章:

  • Linux服务器下PHPMailer发送邮件失败的问题解决
  • PHP插件PHPMailer发送邮件功能
  • phpmailer简单发送邮件的方法(附phpmailer源码下载)
  • phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
  • PHP实现发送邮件的方法(基于简单邮件发送类)
  • php发送邮件的问题详解
  • PHP实现自动发送邮件功能代码(qq 邮箱)

您可能感兴趣的文章:

  • ThinkPHP3.2利用QQ邮箱/163邮箱通过PHPMailer发送邮件的方法
  • phpmailer发送邮件功能
  • PHPMailer使用QQ邮箱实现邮件发送功能
  • Linux服务器下PHPMailer发送邮件失败的问题解决
  • PHP插件PHPMailer发送邮件功能
  • 使用PHPMailer发送邮件实例
  • 澳门新萄京使用PHPMailer实现邮件发送代码分享,phpmailer简单发送邮件的方法。PHPMailer发送邮件
  • phpmailer绑定邮箱的实现方法
  • php使用phpmailer发送邮件实例解析
  • phpmailer简单发送邮件的方法(附phpmailer源码下载)
  • phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
  • 汇总PHPmailer群发Gmail的常见问题
  • PHP借助phpmailer发送邮件
  • thinkphp使用phpmailer发送邮件的方法
  • PHP邮件发送类PHPMailer用法实例详解
  • phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
  • phpmailer在服务器上不能正常发送邮件的解决办法
  • 实例分析PHP中PHPMailer发邮件

4.验证并绑定

// 绑定邮箱
public function bind_email() {
    if (IS_POST) {
      // 获取验证码
      $activationcode = $this->_post('activationcode','trim');
      $email = $this->_post('email','trim');
      $session_activationcode = session($this->activationcode);
      if (time() > $session_activationcode['time'] || $activationcode != $session_activationcode['code']) {
        $this->error('验证码有误');
      } else {
        M('User')->where(array('id'=>$this->user['id']))->save(array('email'=>$email));
        $this->success('绑定成功',U('Account/my'));
      }
    } else {
      $this->display();
    }
}

小结:

  1. 这是一种思路,跟发送手机验证码差不多。
  2. 区别在于一个是发送短信,一个是发送邮件。
  3. 二一个,一个发送主体是阿里大鱼,一个发送主体是公司申请的邮箱。
  4. 三一个,发送短信收费,发送邮件免费。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • ThinkPHP3.2利用QQ邮箱/163邮箱通过PHPMailer发送邮件的方法
  • phpmailer发送邮件功能
  • PHPMailer使用QQ邮箱实现邮件发送功能
  • Linux服务器下PHPMailer发送邮件失败的问题解决
  • PHP插件PHPMailer发送邮件功能
  • 使用PHPMailer发送邮件实例
  • PHPMailer发送邮件
  • php使用phpmailer发送邮件实例解析
  • phpmailer简单发送邮件的方法(附phpmailer源码下载)
  • phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
  • 汇总PHPmailer群发Gmail的常见问题
  • PHP借助phpmailer发送邮件
  • thinkphp使用phpmailer发送邮件的方法
  • 使用PHPMailer实现邮件发送代码分享
  • PHP邮件发送类PHPMailer用法实例详解
  • phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
  • phpmailer在服务器上不能正常发送邮件的解决办法
  • 实例分析PHP中PHPMailer发邮件

本文由澳门新萄京发布于www.澳门新萄京赌场,转载请注明出处:澳门新萄京使用PHPMailer实现邮件发送代码分享,

上一篇:领会Zend中的数据库组件,Framework教程之Zend_Db_T 下一篇:没有了
猜你喜欢
热门排行
精彩图文