首页  >  文章  >  php教程  >  【夯实PHP基础】PHP发送邮件(PHPMailer)

【夯实PHP基础】PHP发送邮件(PHPMailer)

WBOY
WBOY原创
2016-12-05 13:26:241848浏览

本文地址

参考地址

 

分享提纲:

  1. 概述

  2. 编写代码发送邮件

  3. 参考文档

 

1. 概述


 

   本文是讲利用邮件类库 PHPMailer来发送邮件方法。

  我们在做project的时候常常需要邮件的功能。其实PHP语言自己已经有一个发送邮件的方法(mail()方法),且不说这个方法实现的功能很少,想要利用mail()方法来发送邮件就必须要自己配置好smtp服务器,这里就不讲mail()的使用方法了(函数调用确实很简单)。所以,我们推荐使用第二种方法:PHPMailer。

 

2. 编写代码发送邮件


 

  1)【下载PHPMailer】

           首先,先到http://phpmailer.sourceforge.net/这个地址去下载最新的PHPMailer的包(PHPMailer方法必须使用这个包,目前依托在 gitHub上)。

           直接下载压缩包也行: https://github.com/wozhuzaisi/PHPMailer/archive/master.zip

  2)【代码实现】

      下载完成后解压到相应的目录。可以看到解压后的文件夹里面的class.phpmailer.php(调用PHPMailer需要包含这个文件)

  示例代码:

 <span style="color: #000000;">php 
 </span><span style="color: #008000;">//</span><span style="color: #008000;">1.【下载地址】PHPMailer下载地址:https://github.com/wozhuzaisi/PHPMailer/archive/master.zip
 //2.【邮箱配置SMTP】本文实现的是 smtp协议的163邮箱发送。其他邮箱和协议请参考: http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/
 //3.【文本编码】请保证 utf-8的文本编码,否则邮件会出现乱码
 //4.【运行方式】 直接调用 smtp_mail()函数即可
  
   
//测试邮件
// 参数说明(收件人邮箱地址, 收件人姓名, 邮件主题, 邮件内容, 附加信息, 发送人用户名)  </span>
smtp_mail("receiveUser@haodf.com", 'receiveUserName', "【标题】12.01 测试邮件", "【内容】测试邮件", "", <span style="color: #800080;">$fromUsername</span>="邮件发送人"<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> "<br>end<br>"<span style="color: #000000;"> ;
 
</span><span style="color: #0000ff;">function</span> smtp_mail( <span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>, <span style="color: #800080;">$subject</span>, <span style="color: #800080;">$body</span>, <span style="color: #800080;">$extraHdrs</span>='', <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">){ 
    </span><span style="color: #800080;">$path</span> = 'PHPMailer-master/'<span style="color: #000000;">; 
    </span><span style="color: #0000ff;">require_once</span>(<span style="color: #800080;">$path</span>."class.smtp.php"<span style="color: #000000;">);    
    </span><span style="color: #0000ff;">require</span>(<span style="color: #800080;">$path</span>."class.phpmailer.php"<span style="color: #000000;">);
       
    </span><span style="color: #800080;">$mail</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> PHPMailer();    
    </span><span style="color: #800080;">$mail</span>->IsSMTP();                  <span style="color: #008000;">//</span><span style="color: #008000;"> send via SMTP
    //这里使用 163邮箱</span>
    <span style="color: #800080;">$mail</span>->Host = "smtp.163.com";   <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP servers    </span>
    <span style="color: #800080;">$mail</span>->SMTPAuth = <span style="color: #0000ff;">true</span>;           <span style="color: #008000;">//</span><span style="color: #008000;"> turn on SMTP authentication </span>
    
    <span style="color: #800080;">$mail</span>->Username = "yourEmailUserName";     <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP username  注意:普通邮件认证不需要加 @域名  这里是我的163邮箱</span>
    <span style="color: #800080;">$mail</span>->Password = "yourEmailPassWord"; <span style="color: #008000;">//</span><span style="color: #008000;"> SMTP password    在这里输入邮箱的密码</span>
    
    <span style="color: #800080;">$mail</span>->From = <span style="color: #800080;">$fromMailAddress</span> = "yourName@163.com";      <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人邮箱    </span>
    <span style="color: #800080;">$mail</span>->FromName =  <span style="color: #800080;">$fromUsername</span>;  <span style="color: #008000;">//</span><span style="color: #008000;"> 发件人    </span>
    <span style="color: #800080;">$mail</span>->CharSet = "UTF-8";   <span style="color: #008000;">//</span><span style="color: #008000;"> 这里指定字符集!    指定UTF-8后邮件的标题和发件人等等不会乱码,如果是GB2312标题会乱码</span>
    <span style="color: #800080;">$mail</span>->Encoding = "base64"<span style="color: #000000;">;    
    </span><span style="color: #800080;">$mail</span>->AddAddress(<span style="color: #800080;">$receiveEmailAddress</span>, <span style="color: #800080;">$receiveUserName</span>);  <span style="color: #008000;">//</span><span style="color: #008000;"> 收件人邮箱和姓名    </span>
    <span style="color: #800080;">$mail</span>->AddReplyTo(<span style="color: #800080;">$fromMailAddress</span>, <span style="color: #800080;">$fromUsername</span><span style="color: #000000;">);    
    </span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->WordWrap = 50; // set word wrap 换行字数    
    //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件    
    //$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    
    //$mail->IsHTML(true);  // send as HTML    
    // 邮件主题    </span>
    <span style="color: #800080;">$mail</span>->Subject = <span style="color: #800080;">$subject</span><span style="color: #000000;">;    
    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 邮件内容    </span>
    <span style="color: #800080;">$mail</span>->Body = <span style="color: #800080;">$body</span><span style="color: #000000;">;                                                                          
    </span><span style="color: #008000;">//</span><span style="color: #008000;">$mail->AltBody ="text/html";    </span>
    <span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$mail</span>-><span style="color: #000000;">Send())    
    {    
        </span><span style="color: #0000ff;">echo</span> "error <p>"<span style="color: #000000;">;    
        </span><span style="color: #0000ff;">echo</span> "error: " . <span style="color: #800080;">$mail</span>-><span style="color: #000000;">ErrorInfo;    
        </span><span style="color: #0000ff;">exit</span><span style="color: #000000;">;    
    }    
    </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {    
        </span><span style="color: #0000ff;">echo</span>"success!"<span style="color: #000000;">; 
    }    
}

  </span></p>

 

  就是这些,欢迎批评指正

 

3. 参考文档


  1)使用 PHPMailer 发送邮件  

  2)PHP发送邮件(PHPMailer) - FTD2012 - 博客园  

 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn