搜尋
首頁php教程php手册【夯實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需要包含這個檔案)

  範例程式碼:

 <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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。