欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用PHPMailer发送邮件实例

程序员文章站 2024-03-07 14:28:15
本文实例为大家分享了phpmailer发送邮件的具体代码,供大家参考,具体内容如下 phpmailer类源代码下载地址:https://github.com/phpmai...

本文实例为大家分享了phpmailer发送邮件的具体代码,供大家参考,具体内容如下

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

<?php 
/* 
to:  邮件接收地址 
subject: 邮件主题 
body: 邮件内容 
attachpath:附件地址 
cc: 邮件抄送地址 
bcc: 邮件暗抄送地址 
*/ 
function send_mail($to, $subject="", $body="", $attachpath="", $cc="", $bcc="") 
{ 
 // 对邮件内容进行必要的过滤 
 $body = eregi_replace("[\]",'',$body);  
 
 // 设定时区 
 date_default_timezone_set("prc"); 
 
 require_once('class.phpmailer.php'); 
 require_once("class.smtp.php"); 
 
 // 实例化phpmailer对象 
 $mail = new phpmailer();     
 
 // 设定邮件编码,默认iso-8859-1,如果发中文此项必须设置为 utf-8 
 $mail->charset ="utf-8"; 
 
 // 设定使用smtp服务 
 $mail->issmtp(); 
 
 // 启用 smtp 验证功能 
 $mail->smtpauth = true; 
 
 // smtp 安全协议 
 $mail->smtpsecure = "ssl"; 
 
 // smtp 服务器 
 $mail->host = "smtp.qq.com"; 
 
 // smtp服务器的端口号 
 $mail->port = 465; 
 
 // smtp服务器用户名和密码 
 $mail->username = "xxxxxx@qq.com";  
 $mail->password = "xxxxxx";   
 
 // 设置发件人地址和名称,名称可有可无 
 $mail->setfrom("xxxxxx@qq.com", "xxxxxx"); 
 
 // 设置邮件接收地址和名称,第二个参数无所谓。必须用addaddress添加邮件接收地址。addreplyto方法没什么用。 
 //$mail->addreplyto("xxxxxx@163.com", "xxxxxx"); 
 $mailaddrs = split(",", $to); 
 foreach ($mailaddrs as $addres) 
 { 
 //校验邮箱地址是否合法 
 if (filter_var($addres, filter_validate_email)) 
 { 
  $mail->addaddress($addres);  
 } 
 } 
 
 // 设置邮件抄送地址 
 if ($cc != "") 
 { 
 $ccaddrs = split(",", $cc); 
 foreach ($ccaddrs as $ccaddr) 
 { 
  //校验邮箱地址是否合法 
  if (filter_var($ccaddr, filter_validate_email)) 
  { 
  $mail->addcc($ccaddr);  
  } 
 } 
 } 
 
 // 设置邮件暗抄送地址,私密发送 
 if ($bcc != "") 
 { 
 $bccaddrs = split(",", $bcc); 
 foreach ($bccaddrs as $bccaddr) 
 { 
  //校验邮箱地址是否合法 
  if (filter_var($bccaddr, filter_validate_email)) 
  { 
  $mail->addbcc($bccaddr);  
  } 
 } 
 } 
 
 // 设置邮件主题 
 $mail->subject = $subject; 
 
 // 可选项,向下兼容考虑 
 $mail->altbody = "为了查看该邮件,请切换到支持 html 的邮件客户端"; 
 
 // 设置邮件内容 
 $mail->msghtml($body);     
 
 //使用html格式发送邮件 
 $mail->ishtml(true); 
 
 // 添加附件,第一个参数是附件地址,第二个参数附件名 
 //$mail->addattachment("images/phpmailer.gif"); 
 $mail->addattachment($attachpath); 
 
 // 发送邮件 
 if(!$mail->send()) 
 { 
 echo "发送失败:" . $mail->errorinfo . php_eol; 
 } 
 else 
 { 
 echo "恭喜,邮件发送成功!" . php_eol; 
 } 
} 
$emailaddr = "xxxxxx@163.com,xxxxxx@qq.com,"; 
send_mail($emailaddr, "测试邮件", "<h1>使用phpmailer类发送的邮件。</h1>", "mail/20170216.gif", "xxxxxx@qq.com", ""); 
?> 

测试结果:

使用PHPMailer发送邮件实例

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

登录qq邮箱->设置->账户->pop3/imap/smtp/exchange/carddav/caldav服务->生成授权码

使用PHPMailer发送邮件实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。