PHPMailer使用說明

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

郵件格式說明

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

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

 

除了上述內容以外,還有「祕密抄送(BCC)」一項,這一項所指定的收件人,在收到郵件的時候是能看到其它的全部收件人的,可是其它的收件人是看不到BCC這一項的收件人的,他們也不知道BCC所指定的收件人也收到了郵件,BCC指定的收件人相對於其它人是透明的。git

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是一個自動加載的文件,方便快捷。github

示例詳解

示例使用163的郵箱來作郵件發送方,一樣使用163的郵箱來接收郵件(多個不一樣的163郵箱)。 
要使用163郵箱的客戶端發送功能,須要在web上登陸郵箱,在「設置」裏設置「客戶端受權密碼」,而後啓用服務後才能夠在客戶端使用。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服務器、郵箱用戶名和客戶端受權密碼是否都正常。 

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

相關文章
相關標籤/搜索