PHPMailer使用說明


PHPMailer是一個用來發送電子郵件的函數包,遠比PHP提供的mail()方便易用。

郵件格式說明

一封普通的電子郵件,通常是由發件人、收件人、抄送人、郵件標題、郵件內容、附件等內容構成。以下是一封郵件的標准格式:

郵件標題(Subject):測試郵件 發件人(From):小紅(xiaohong@xx.xx) 收件人(To):小白(xiaobai@xx.xx) 抄送人(CC):大紅(dahong@xx.xx) 郵件附件(Attachment):附件 郵件正文(Body):這是一封測試郵件,請自動忽略。

 

除了上述內容之外,還有“秘密抄送(BCC)”一項,這一項所指定的收件人,在收到郵件的時候是能看到其它的所有收件人的,但是其它的收件人是看不到BCC這一項的收件人的,他們也不知道BCC所指定的收件人也收到了郵件,BCC指定的收件人相對於其它人是透明的。

PHPMailer下載

下載地址: 
https://github.com/PHPMailer/PHPMailer 
我下載的是ZIP壓縮包,因為測試環境是Win7+xampp。 
解壓后進入目錄,直接拷貝class.phpmailer.php、class.smtp.php和PHPMailerAutoload.php三個文件到項目根目錄下。class.phpmailer.php是主文件,具體的功能都是在這里面實現的;class.smtp.php是使用smtp需要的文件,如果使用的是pop3,那就拷貝class.pop3.php文件;PHPMailerAutoload.php是一個自動加載的文件,方便快捷。

示例詳解

示例使用163的郵箱來做郵件發送方,同樣使用163的郵箱來接收郵件(多個不同的163郵箱)。 
要使用163郵箱的客戶端發送功能,需要在web上登錄郵箱,在“設置”里設置“客戶端授權密碼”,然后啟用服務后才可以在客戶端使用。

<?php
require 'PHPMailerAutoload.php';// 加載這1個文件和加載下面2個文件的作用是等同的
//require_once 'class.phpmailer.php';
//require_once 'class.smtp.php';

$mail = new PHPMailer();

$mail->isSMTP();// 使用SMTP服務
$mail->CharSet = "utf8";// 編碼格式為utf8,不設置編碼的話,中文會出現亂碼
$mail->Host = "smtp.163.com";// 發送方的SMTP服務器地址
$mail->SMTPAuth = true;// 是否使用身份驗證
$mail->Username = "xxxx@163.com";// 發送方的163郵箱用戶名
$mail->Password = "******";// 發送方的郵箱密碼,注意用163郵箱這里填寫的是“客戶端授權密碼”而不是郵箱的登錄密碼!
$mail->SMTPSecure = "ssl";// 使用ssl協議方式
$mail->Port = 994;// 163郵箱的ssl協議方式端口號是465/994

$mail->setFrom("xxxx@163.com","Mailer");// 設置發件人信息,如郵件格式說明中的發件人,這里會顯示為Mailer(xxxx@163.com),Mailer是當做名字顯示
$mail->addAddress("yyyy@163.com",'Liang');// 設置收件人信息,如郵件格式說明中的收件人,這里會顯示為Liang(yyyy@163.com)
$mail->addReplyTo("zzzz@163.com","Reply");// 設置回復人信息,指的是收件人收到郵件后,如果要回復,回復郵件將發送到的郵箱地址
$mail->addCC("aaaa@inspur.com");// 設置郵件抄送人,可以只寫地址,上述的設置也可以只寫地址
$mail->addBCC("bbbb@163.com");// 設置秘密抄送人
$mail->addAttachment("bug0.jpg");// 添加附件


$mail->Subject = "This is a test mailxx";// 郵件標題
$mail->Body = "This is the html body <b>very stronge非常強壯</b>";// 郵件正文
//$mail->AltBody = "This is the plain text純文本";// 這個是設置純文本方式顯示的正文內容,如果不支持Html方式,就會用到這個,基本無用

if(!$mail->send()){// 發送郵件
    echo "Message could not be sent.";
    echo "Mailer Error: ".$mail->ErrorInfo;// 輸出錯誤信息
}else{
    echo 'Message has been sent.';
}

 


在瀏覽器上跑一下該文件,看到’Message has been sent.’的信息就表示郵件發送成功了。只要設置都正確,郵件發送都會成功。如果測試郵件發送失敗,檢查一下網絡、apache服務器、郵箱用戶名和客戶端授權密碼是否都正常。 

如果在設置收發郵件地址時,同步設置了收發人的名字,且名字是用中文進行設置的,那在某些客戶端接收到的收發件人的名字會顯示為亂碼。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM