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

Posted wozhuzaisi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了夯实PHP基础PHP发送邮件(PHPMailer)相关的知识,希望对你有一定的参考价值。

本文地址

参考地址

 

分享提纲:

  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需要包含这个文件)

  示例代码:

 <?php 
 //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()函数即可
  
   
//测试邮件
// 参数说明(收件人邮箱地址, 收件人姓名, 邮件主题, 邮件内容, 附加信息, 发送人用户名)  
smtp_mail("receiveUser@haodf.com", \'receiveUserName\', "【标题】12.01 测试邮件", "【内容】测试邮件", "", $fromUsername="邮件发送人");
echo "<br>end<br>" ;
 
function smtp_mail( $receiveEmailAddress, $receiveUserName, $subject, $body, $extraHdrs=\'\', $fromUsername){ 
    $path = \'PHPMailer-master/\'; 
    require_once($path."class.smtp.php");    
    require($path."class.phpmailer.php");
       
    $mail = new PHPMailer();    
    $mail->IsSMTP();                  // send via SMTP
    //这里使用 163邮箱
    $mail->Host = "smtp.163.com";   // SMTP servers    
    $mail->SMTPAuth = true;           // turn on SMTP authentication 
    
    $mail->Username = "yourEmailUserName";     // SMTP username  注意:普通邮件认证不需要加 @域名  这里是我的163邮箱
    $mail->Password = "yourEmailPassWord"; // SMTP password    在这里输入邮箱的密码
    
    $mail->From = $fromMailAddress = "yourName@163.com";      // 发件人邮箱    
    $mail->FromName =  $fromUsername;  // 发件人    
    $mail->CharSet = "UTF-8";   // 这里指定字符集!    指定UTF-8后邮件的标题和发件人等等不会乱码,如果是GB2312标题会乱码
    $mail->Encoding = "base64";    
    $mail->AddAddress($receiveEmailAddress, $receiveUserName);  // 收件人邮箱和姓名    
    $mail->AddReplyTo($fromMailAddress, $fromUsername);    
    //$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    
    // 邮件主题    
    $mail->Subject = $subject;    
    // 邮件内容    
    $mail->Body = $body;                                                                          
    //$mail->AltBody ="text/html";    
    if(!$mail->Send())    
    {    
        echo "error <p>";    
        echo "error: " . $mail->ErrorInfo;    
        exit;    
    }    
    else {    
        echo"success!"; 
    }    
}

  

 

  就是这些,欢迎批评指正

 

3. 参考文档


  1)使用 PHPMailer 发送邮件  

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

 

以上是关于夯实PHP基础PHP发送邮件(PHPMailer)的主要内容,如果未能解决你的问题,请参考以下文章

使用php发送电子邮件(phpmailer)

PHP 通过PHPMailer发送邮件

PHP 通过PHPMailer发送邮件

PHP 使用 PHPMailer 发送邮件

php使用phpmailer类和smtp发送邮件

php使用PHPMailer发送邮件