PHPMailer PHP郵件發送類

來源:互聯網
上載者:User

一、PHPMailer簡介

PHPMailer 是一個功能強大的 PHP郵件發送類,它可以更加便捷的發送郵件,並且還能發送附件和HTML格式的郵件,同時還能使用 SMTP 伺服器來發送郵件。

由於PHP內建mail() 函數功能並不完善,只能發送文本的e-mail,並且mail() 函數只能應用在Linux 伺服器,還有一個最大的問題就是使用mail() 函數發送的郵件沒有進行身分識別驗證,很多郵件收不到使用 mail() 函數發送的郵件或者發送的郵件直接進入垃圾郵箱。而PHPMailer給我們提供了所有的郵件發送方式,我們可以按需選擇適合的郵件處理方法。

PHPMailer 是一個功能強大的郵件類,其主要功能特點:

支援郵件 s/mime加密的數位簽章

支援郵件多個 TOs, CCs, BCCs and REPLY-TOs

可以工作在任何伺服器平台,所以不用擔心WIN平台無法發送郵件的問題的

支援文本/HTML格式郵件

可以嵌入image映像

對於郵件用戶端不支援HTML閱讀的進行支援

功能強大的發送郵件調試功能debug

自訂郵件header

冗餘SMTP伺服器支援

支援8bit, base64, binary, and quoted-printable 編碼

文字自動換行

支援多附件發送功能

支援SMTP伺服器驗證功能

在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台測試成功

提供的下載檔案中,包括內容詳細的說明文檔及樣本說明,所以不用擔心難於上手的問題!

PHPMailer 非常小巧、簡單、方便、快捷

二、PHPMailer使用

1.首先是下載PHPMailer

http://code.google.com/a/apache-extras.org/p/phpmailer/

2.解壓

從中取出class.phpmailer.php 和 class.smtp.php 放到你的項目的檔案夾

3.建立發送郵件的函數,其中你需要配置smtp伺服器

function postmail($to,$subject = '',$body = ''){
//Author:Jiucool WebSite: http://www.jiucool.com
//$to 表示收件者地址 $subject 表示郵件標題 $body表示郵件內文
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('Asia/Shanghai');//設定時區東八區
require_once('class.phpmailer.php');
include('class.smtp.php');
$mail = new PHPMailer(); //new一個PHPMailer對象出來
$body = eregi_replace("[]",'',$body); //對郵件內容進行必要的過濾
$mail->CharSet ="GBK";//設定郵件編碼,預設ISO-8859-1,如果發中文此項必須設定,否則亂碼
$mail->IsSMTP(); // 設定使用SMTP服務
$mail->SMTPDebug = 1; // 啟用SMTP調試功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 啟用 SMTP 驗證功能
$mail->SMTPSecure = "ssl"; // 安全性通訊協定,可以注釋掉
$mail->Host = 'stmp.163.com'; // SMTP 伺服器
$mail->Port = 25; // SMTP伺服器的連接埠號碼
$mail->Username = 'wangliang_198x'; // SMTP伺服器使用者名稱,PS:我亂打的
$mail->Password = 'password'; // SMTP伺服器密碼
$mail->SetFrom('xxx@xxx.xxx', 'who');
$mail->AddReplyTo('xxx@xxx.xxx','who');
$mail->Subject = $subject;
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif"); // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
// echo "Message sent!恭喜,郵件發送成功!";
}
}

4. 使用函數

postmail('scutephp@qq.com','My subject','PHP建站門戶');

三、phpmailer詳細使用說明

A開頭:

$AltBody--屬性
出自:PHPMailer::$AltBody
檔案:class.phpmailer.php
說明:該屬性的設定是在郵件內文不支援HTML的備用顯示

AddAddress--方法
出自:PHPMailer::AddAddress(),檔案:class.phpmailer.php
說明:增加收件者。參數1為收件者郵箱,參數2為收件者稱呼。例 AddAddress("xiaoxiaoxiaoyu@xiaoxiaoyu.cn","xiaoxiaoyu"),但參數2可選,AddAddress(xiaoxiaoxiaoyu@xiaoxiaoyu.cn)也是可以的。
函數原型:public function AddAddress($address, $name = '') {}

AddAttachment--方法
出自:PHPMailer::AddAttachment()
檔案:class.phpmailer.php。
說明:增加附件。
參數:路徑,名稱,編碼,類型。其中,路徑為必選,其他為可選
函數原型:
AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream'){}

AddBCC--方法
出自:PHPMailer::AddBCC()
檔案:class.phpmailer.php
說明:增加一個密送。抄送和密送的區別請看[SMTP發件中的密送和抄送的區別] 。
參數1為地址,參數2為名稱。注意此方法只支援在win32下使用SMTP,不支援mail函數
函數原型:public function AddBCC($address, $name = ''){}

AddCC --方法
出自:PHPMailer::AddCC()
檔案:class.phpmailer.php
說明:增加一個抄送。抄送和密送的區別請看[SMTP發件中的密送和抄送的區別] 。
參數1為地址,參數2為名稱注意此方法只支援在win32下使用SMTP,不支援mail函數
函數原型:public function AddCC($address, $name = '') {}

AddCustomHeader--方法
出自:PHPMailer::AddCustomHeader()
檔案:class.phpmailer.php
說明:增加一個自訂的E-mail頭部。
參數為頭部資訊
函數原型:public function AddCustomHeader($custom_header){}

AddEmbeddedImage --方法
出自:PHPMailer::AddEmbeddedImage()
檔案:class.phpmailer.php
說明:增加一個嵌入式圖片
參數:路徑,返回控制代碼[,名稱,編碼,類型]
函數原型:public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {}
提示:AddEmbeddedImage(PICTURE_PATH. "index_01.jpg ", "img_01 ", "index_01.jpg ");
在html中引用

AddReplyTo--方法
出自:PHPMailer:: AddReplyTo()
檔案:class.phpmailer.php
說明:增加回複標籤,如"Reply-to"
參數1地址,參數2名稱
函數原型:public function AddReplyTo($address, $name = '') {}

AddStringAttachment-方法
出自:PHPMailer:: AddStringAttachment()
檔案:class.phpmailer.php
說明:增加一個字串或二進位附件(Adds a string or binary attachment (non-filesystem) to the list.?)
參數:字串,檔案名稱[,編碼,類型]
函數原型:public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {}

Authenticate--方法
出自:SMTP::Authenticate()
檔案:class.smtp.php
說明:開始SMTP認證,必須在Hello()之後調用,如果認證成功,返回true,
參數1使用者名稱,參數2密碼
函數原型:public function Authenticate($username, $password) {}

B開頭

$Body--屬性
出自:PHPMailer::$Body
檔案: class.phpmailer.php
說明:郵件內容,HTML或Text格式

C開頭

$CharSet--屬性
出自:PHPMailer::$CharSet
檔案:class.phpmailer.php
說明:郵件編碼,預設為iso-8859-1

$ConfirmReadingTo--屬性
出自:PHPMailer::$ConfirmReadingTo 檔案class.phpmailer.php
說明:回執?

$ContentType--屬性
出自:PHPMailer::$ContentType
檔案: class.phpmailer.php
說明:文檔的類型,預設為"text/plain"

$CRLF--屬性
出自:PHPMailer::$ContentType
檔案:class.phpmailer.php
說明:SMTP回複結束的分隔字元(SMTP reply line ending?)

class.phpmailer.php--對象
出自:class.phpmailer.php
檔案: class.phpmailer.php
說明:phpmailer對象

class.smtp.php--對象
出自:class.smtp.php 檔案: class.smtp.php
說明:SMTP功能的對象

ClearAddresses--方法
出自:PHPMailer::ClearAddresses()
檔案: class.phpmailer.php
說明:清除收件者,為下一次發件做準備。傳回型別是void

ClearAllRecipients--方法
出自:PHPMailer::ClearAllRecipients()
檔案: class.phpmailer.php
說明:清除所有收件者,包括CC(抄送)和BCC(密送)

ClearAttachments--方法
出自:PHPMailer::ClearAttachments()
檔案: class.phpmailer.php
說明:清楚附件

ClearBCCs--方法
出自:PHPMailer::ClearBCCs() 檔案 class.phpmailer.php
說明:清楚BCC (密送)

ClearCustomHeaders--方法
出自:PHPMailer::ClearCustomHeaders()
檔案: class.phpmailer.php
說明:清楚自訂頭部

ClearReplyTos--方法
出自:PHPMailer::ClearReplyTos()
檔案: class.phpmailer.php
說明:清楚回複人

Close--方法
出自:SMTP::Close()
檔案: class.smtp.php
說明:關閉一個SMTP串連

Connect--方法
出自:SMTP::Connect()
檔案: class.smtp.php
說明:建立一個SMTP串連[/color]Mailer.html

$ContentType--屬性
出自:PHPMailer::$ContentType
檔案: class.phpmailer.php
說明:文檔的類型,預設為"text/plain"

D開頭

$do_debug--屬性
出自:SMTP::$do_debug
檔案:class.smtp.php
說明:SMTP調試輸出

Data-方法
出自:SMTP::Data()
檔案:class.smtp.php
說明:向伺服器發送一個資料命令和訊息資訊(sendsthemsg_datatotheserver)

E開頭

$Encoding--屬性
出自:PHPMailer::$Encoding
檔案:class.phpmailer.php
說明:設定郵件的編碼方式,可選:"8bit","7bit","binary","base64",和"quoted-printable".

$ErrorInfo--屬性
出自:PHPMailer::$ErrorInfo
檔案:class.phpmailer.php
說明:返回郵件SMTP中的最後一個錯誤資訊

Expand--方法
出自:SMTP::Expand()
檔案:class.smtp.php
說明:返回郵件清單中所有使用者。成功則返回數組,否則返回 false(Expandtakesthenameandaskstheservertolistallthepeoplewhoaremembersofthe_list_.Expandwillreturnbackandarrayoftheresultorfalseifanerroroccurs.)

F開頭:

$From--屬性
出自:PHPMailer::$From檔案class.phpmailer.php
說明:寄件者E-mail地址

$FromName--屬性
出自:PHPMailer::$FromName
檔案:class.phpmailer.php
說明:寄件者稱呼

H開頭:

$Helo--屬性
出自:PHPMailer::$Helo
檔案:class.phpmailer.php
說明:設定SMTPHelo,預設是$Hostname(SetstheSMTPHELOofthemessage(Defaultis$Hostname).)

$Host--屬性
出自:PHPMailer::$Host
檔案:class.phpmailer.php
說明:設定SMTP伺服器,格式為:主機名稱[連接埠號碼],如smtp1.example.com:25和smtp2.example.com都是合法的

$Hostname--屬性
出自:PHPMailer::$Hostname
檔案:class.phpmailer.php
說明:設定在Message-Id和andReceivedheaders中的hostname並同時被$Helo使用。如果為空白,預設為SERVER_NAME或'localhost.localdomain"

Hello--方法
出自:SMTP::Hello()
檔案:class.smtp.php
說明:向SMTP伺服器發送HELO命令

Help--方法
出自:SMTP::Help()
檔案:class.smtp.php
說明:如果有關鍵詞,得到關鍵詞的協助資訊

I開頭:

IsError--方法
出自:PHPMailer::IsError()
檔案:class.phpmailer.php
說明:返回是否有錯誤發生

IsHTML--方法
出自:PHPMailer::IsHTML()
檔案:class.phpmailer.php
說明:設定信件是否是HTML格式

IsMail--方法
出自:PHPMailer::IsMail()
檔案:class.phpmailer.php
說明:設定是否使用php的mail函數發件

IsQmail--方法
出自:PHPMailer::IsQmail()
檔案:class.phpmailer.php
說明:設定是否使用qmailMTA來發件

IsSendmail--方法
出自:PHPMailer::IsSendmail()
檔案:class.phpmailer.php
說明:是否使用$Sendmail程式來發件

IsSMTP--方法
出自:PHPMailer::IsSMTP()
檔案:class.phpmailer.php
說明:是否使用SMTP來發件

M開頭:

$Mailer--屬性
出自:PHPMailer::$Mailer
檔案:class.phpmailer.php
說明:發件方式,("mail","sendmail",or"smtp").中的一個

Mail--方法
出自:SMTP::Mail()
檔案:class.smtp.php
說明:從$from中一個郵件地址開始處理,返回true或false。如果是true,則開始發件

N開頭:

Noop--方法
出自:SMTP::Noop()
檔案:class.smtp.php
說明:向SMTP伺服器發送一個NOOP命令

P開頭:

$Password--屬性
出自:PHPMailer::$Password
檔案:class.phpmailer.php
說明:設定SMTP的密碼

$PluginDir--屬性
出自:PHPMailer::$PluginDir
檔案:class.phpmailer.php
說明:設定phpmailer的外掛程式目錄,僅在smtpclass不在phpmailer目錄下有效

$Port--屬性
出自:PHPMailer::$Port
檔案:class.phpmailer.php
說明:設定SMTP的連接埠號碼

$Priority--屬性
出自:PHPMailer::$Priority
檔案:class.phpmailer.php
說明:設定郵件投遞優先等級。1=緊急,3=普通,5=不急

PHPMailer--對象
出自:PHPMailer
檔案:class.phpmailer.php
說明:PHPMailer-PHPemailtransportclass

Q開頭

Quit--方法
出自:SMTP::Quit()
檔案:class.smtp.php
說明:向伺服器發送Quit命令,如果沒有錯誤發生。那麼關閉sock,不然$close_on_error為true

R開頭

Recipient--方法
出自:SMTP::Recipient()
檔案:class.smtp.php
說明:使用To向SMTP發送RCPT命令,參數為:$to

Reset--方法
出自:SMTP::Reset()
檔案:class.smtp.php
說明:發送RSET命令從而取消處理中傳輸。成功則返回true,否則為false

S開頭:

$Sender--屬性
出自:PHPMailer::$Sender
檔案:class.phpmailer.php
說明:SetstheSenderemail(Return-Path)ofthemessage.Ifnotempty,willbesentvia-ftosendmailoras'MAILFROM'insmtpmode.

$Sendmail--屬性
出自:PHPMailer::$Sendmail
檔案:class.phpmailer.php
說明:設定發件程式的目錄

$SMTPAuth--屬性
出自:PHPMailer::$SMTPAuth
檔案:class.phpmailer.php
說明:設定SMTP是否需要認證,使用Username和Password變數

$SMTPDebug--屬性
出自:PHPMailer::$SMTPDebug
檔案:class.phpmailer.php
說明:設定SMTP是否調試輸出?

$SMTPKeepAlive--屬性
出自:PHPMailer::$SMTPKeepAlive
檔案:class.phpmailer.php
說明:在每次發件後不關閉串連。如果為true,則,必須使用SmtpClose()來關閉串連

$SMTP_PORT--屬性
出自:SMTP::$SMTP_PORT
檔案:class.smtp.php
說明:設定SMTP連接埠

$Subject--屬性
出自:PHPMailer::$Subject
檔案:class.phpmailer.php
說明:設定信件的主題

Send--方法
出自:SMTP::Send()
檔案:class.smtp.php
說明:從指定的郵件地址開始一個郵件傳輸

Send--方法
出自:PHPMailer::Send()
檔案:class.phpmailer.php
說明:建立郵件並制定發件程式。如果發件不成功,則返回false,請使用ErrorInfo來查看錯誤資訊

SendAndMail--方法
出自:SMTP::SendAndMail()
檔案:class.smtp.php
說明:從指定的郵件地址開始一個郵件傳輸

SendOrMail--方法
出自:SMTP::SendOrMail()
檔案:class.smtp.php
說明:從指定的郵件地址開始一個郵件傳輸

SetLanguage--方法
出自:PHPMailer::SetLanguage()
檔案:class.phpmailer.php
說明:設定phpmailer錯誤資訊的語言類型,如果無法載入語言檔案,則返回false,預設為english

SMTP--方法
出自:SMTP::SMTP()
檔案:class.smtp.php
說明:初始化一個對象以便資料處於一個已知的狀態

SMTP--對象
出自:SMTP
檔案:class.smtp.php
說明:SMTP對象

SmtpClose--方法
出自:PHPMailer::SmtpClose()
檔案:class.phpmailer.php
說明:如果有活動的SMTP則關閉它。

T開頭

$Timeout--屬性
出自:PHPMailer::$Timeout
檔案:class.phpmailer.php
說明:設定SMTP伺服器的逾時(單位:秒)。注意:在win32下,該屬性無效

Turn--方法
出自:SMTP::Turn()
檔案:class.smtp.php
說明:這是一個可選的SMTP參數,目前phpmailer並不支援他,可能未來支援

U開頭

$Username--屬性
出自:PHPMailer::$Username
檔案:class.phpmailer.php
說明:設定SMTP使用者名稱

V開頭

$Version--屬性
出自:PHPMailer::$Version
檔案:class.phpmailer.php
說明:返回Phpmailer的版本

Verify--方法
出自:SMTP::Verify()
檔案:class.smtp.php
說明:通過伺服器檢查使用者名稱是否經過驗證

W開頭:

$WordWrap--屬性
出自:PHPMailer::$WordWrap
檔案:class.phpmailer.php 說明:設定每行最大字元數,超過改數後自動換行

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.