使用PHPMailer发送邮件实例

三月 21, 2019 | views
Comments 0

PHPMailer类源代码下载地址:https://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailer

  1. <?php 
  2. /* 
  3. to:  邮件接收地址 
  4. subject: 邮件主题 
  5. body: 邮件内容 
  6. attachpath:附件地址 
  7. cc: 邮件抄送地址 
  8. bcc: 邮件暗抄送地址 
  9. */ 
  10. functionsend_mail($to,$subject="",$body="",$attachpath="",$cc="",$bcc=""
  11. //phpfensi.com 
  12.  // 对邮件内容进行必要的过滤 
  13.  $body=eregi_replace("[\]",'',$body);  
  14.    
  15.  // 设定时区 
  16.  date_default_timezone_set("PRC"); 
  17.    
  18.  require_once('class.phpmailer.php'); 
  19.  require_once("class.smtp.php"); 
  20.    
  21.  // 实例化PHPMailer对象 
  22.  $mail=newPHPMailer();     
  23.    
  24.  // 设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8 
  25.  $mail->CharSet ="UTF-8"
  26.    
  27.  // 设定使用SMTP服务 
  28.  $mail->IsSMTP(); 
  29.    
  30.  // 启用 SMTP 验证功能 
  31.  $mail->SMTPAuth = true; 
  32.    
  33.  // SMTP 安全协议 
  34.  $mail->SMTPSecure ="ssl"
  35.    
  36.  // SMTP 服务器 
  37.  $mail->Host ="smtp.qq.com"
  38.    
  39.  // SMTP服务器的端口号 
  40.  $mail->Port = 465; 
  41.    
  42.  // SMTP服务器用户名和密码 
  43.  $mail->Username ="[email protected]";  
  44.  $mail->Password ="xxxxxx";   
  45.    
  46.  // 设置发件人地址和名称,名称可有可无 
  47.  $mail->SetFrom("[email protected]","xxxxxx"); 
  48.    
  49.  // 设置邮件接收地址和名称,第二个参数无所谓。必须用AddAddress添加邮件接收地址。AddReplyTo方法没什么用。 
  50.  //$mail->AddReplyTo("[email protected]", "xxxxxx"); 
  51.  $mailaddrs= split(",",$to); 
  52.  foreach($mailaddrsas$addres
  53.  { 
  54.  //校验邮箱地址是否合法 
  55.  if(filter_var($addres, FILTER_VALIDATE_EMAIL)) 
  56.  { 
  57.   $mail->AddAddress($addres);  
  58.  } 
  59.  } 
  60.    
  61.  // 设置邮件抄送地址 
  62.  if($cc!=""
  63.  { 
  64.  $ccaddrs= split(",",$cc); 
  65.  foreach($ccaddrsas$ccaddr
  66.  { 
  67.   //校验邮箱地址是否合法 
  68.   if(filter_var($ccaddr, FILTER_VALIDATE_EMAIL)) 
  69.   { 
  70.   $mail->addCC($ccaddr);  
  71.   } 
  72.  } 
  73.  } 
  74.    
  75.  // 设置邮件暗抄送地址,私密发送 
  76.  if($bcc!=""
  77.  { 
  78.  $bccaddrs= split(",",$bcc); 
  79.  foreach($bccaddrsas$bccaddr
  80.  { 
  81.   //校验邮箱地址是否合法 
  82.   if(filter_var($bccaddr, FILTER_VALIDATE_EMAIL)) 
  83.   { 
  84.   $mail->addBCC($bccaddr);  
  85.   } 
  86.  } 
  87.  } 
  88.    
  89.  // 设置邮件主题 
  90.  $mail->Subject =$subject
  91.    
  92.  // 可选项,向下兼容考虑 
  93.  $mail->AltBody ="为了查看该邮件,请切换到支持 HTML 的邮件客户端"
  94.    
  95.  // 设置邮件内容 
  96.  $mail->MsgHTML($body);     
  97.    
  98.  //使用HTML格式发送邮件 
  99.  $mail->IsHTML(true); 
  100.    
  101.  // 添加附件,第一个参数是附件地址,第二个参数附件名 
  102.  //$mail->AddAttachment("images/phpmailer.gif"); 
  103.  $mail->AddAttachment($attachpath); 
  104.    
  105.  // 发送邮件 
  106.  if(!$mail->Send()) 
  107.  { 
  108.  echo"发送失败:".$mail->ErrorInfo . PHP_EOL; 
  109.  } 
  110.  else 
  111.  { 
  112.  echo"恭喜,邮件发送成功!". PHP_EOL; 
  113.  } 
  114. $emailAddr="[email protected],[email protected],"
  115. send_mail($emailAddr,"测试邮件","<h1>使用PHPMailer类发送的邮件。</h1>","mail/20170216.gif","[email protected]",""); 
  116. ?> 

说明:第44行的SMTP服务器密码为qq邮箱授权码。

登录QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->生成授权码



zend