ホームページ  >  記事  >  バックエンド開発  >  PHPMailer PHPメール送信クラス

PHPMailer PHPメール送信クラス

WBOY
WBOYオリジナル
2016-06-20 13:02:312125ブラウズ

1. PHPMailer の概要

PHPMailer は、電子メールをより便利に送信でき、SMTP サーバーを使用して電子メールを送信することもできます。

PHP の組み込みの mail() 関数は完全ではないため、テキストメールしか送信できません。また、mail() 関数は Linux サーバーにのみ適用できます。もう 1 つの最大の問題は、mail() 関数を使用して次のことを行うことです。 send 電子メールは認証されていないため、多くの電子メールは mail() 関数を使用して受信できないか、送信された電子メールはスパム メールボックスに直接送信されます。 PHPMailer はすべての電子メール送信方法を提供し、必要に応じて適切な電子メール処理方法を選択できます。

PHPMailer は、主な機能を備えた強力な電子メール クラスです。

電子メールの s/mime 暗号化デジタル署名をサポート

メール経由で複数の TO、CC、BCC、REPLY-TO をサポート

どのサーバー プラットフォームでも動作するため、WIN プラットフォームでメールを送信できないことを心配する必要はありません

テキスト/HTML 形式のメールをサポート

画像を埋め込むことができます

HTML 読み取りをサポートしていない電子メール クライアントをサポートします

メール送信用の強力なデバッグ機能

カスタマイズされたメールヘッダー

冗長 SMTP サーバーのサポート

8 ビット、base64、バイナリ、quoted-printable エンコーディングをサポート

テキストを自動的に折り返す

複数添付ファイル送信機能をサポート

SMTPサーバー検証機能をサポート

Sendmail、qmail、Postfix、Gmail、Imail、Exchange およびその他のプラットフォームでのテストに成功しました

提供されるダウンロード ファイルには詳細なドキュメントと例が含まれているため、心配する必要はありません。

PHPMailer は非常に小さく、シンプル、便利、そして高速です

2. PHPMailer の使用

1. まず PHPMailer をダウンロードします

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

2. 解凍します

class.phpmailer.php と class.smtp.php を取り出し、プロジェクトのフォルダーに置きます

3. 電子メールを送信するための関数を作成します。この関数では、SMTP サーバーを構成する必要があります

関数 postmail($to,$subject = '',$body = ''){
//作者:Jiucool ウェブサイト: 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() //新しい PHPMailer オブジェクトが出てきます
$body = eregi_replace("[]",'',$body) //メール内容の必要なフィルタリングを実行します
$mail->CharSet ="GBK";//電子メールのエンコーディングを設定します。デフォルトは ISO-8859-1 です。中国語を送信する場合は、これを設定する必要があります。そうしないとコードが文字化けします
$mail->IsSMTP() // SMTP サービスを使用するように設定します
$mail->SMTPDebug = 1; // SMTP デバッグを有効にする
// 1 = エラーとメッセージ
// 2 = メッセージのみ
$mail->SMTPAuth = true; // SMTP認証機能を有効にする
$mail->SMTPSecure = "ssl" // セキュリティ プロトコル、コメントアウトできます
$mail->Host = 'stmp.163.com' // SMTP サーバー
; $mail->Port = 25; // SMTP サーバーのポート番号
$mail->Username = 'wangliang_198x' // SMTP サーバーのユーザー名、追記: ランダムに入力しました
; $mail->Password = 'password' // SMTP サーバーのパスワード
; $mail->SetFrom('xxx@xxx.xxx', 'who');
$mail->AddReplyTo('xxx@xxx.xxx','who');
$mail->Subject = $subject;
$mail->AltBody = 'メッセージを表示するには、HTML 互換の電子メール ビューアを使用してください!' // オプションで、コメントアウトしてテストします
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif") // 添付ファイル
//$mail->AddAttachment("images/phpmailer_mini.gif") // 添付ファイル
if(!$mail->Send()) {
echo 'メーラー エラー: ' $mail->ErrorInfo;
} else {
// echo "メッセージが送信されました! おめでとうございます、メールは正常に送信されました!";
}
}

4. 機能を使用する

postmail('scutephp@qq.com','私の件名','PHP Web サイト構築ポータル');

3. 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
説明: BCC を追加します。 CCとBCCの違いについては、「SMTP送信におけるBCCとCCの違い」をご覧ください。
パラメータ 1 はアドレス、パラメータ 2 は名前です。この方法は win32 での SMTP のみをサポートし、メール機能はサポートしないことに注意してください
関数プロトタイプ: パブリック関数 AddBCC($address, $name = ''){}

AddCC --メソッド
送信者: PHPMailer::AddCC()
ファイル: class.phpmailer.php
説明: CC を追加します。 CCとBCCの違いについては、「SMTP送信におけるBCCとCCの違い」をご覧ください。
パラメータ 1 はアドレス、パラメータ 2 は名前です。このメソッドは win32 での SMTP のみをサポートし、メール機能
をサポートしないことに注意してください。 関数プロトタイプ: public function AddCC($address, $name = '') {}

AddCustomHeader--メソッド
差出人: PHPMailer::AddCustomHeader()
ファイル: class.phpmailer.php
説明: カスタム電子メール ヘッダーを追加します。
パラメータはヘッダー情報
関数プロトタイプ: パブリック関数 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-メソッド
From: PHPMailer:: AddStringAttachment()
ファイル: class.phpmailer.php
説明: 文字列またはバイナリ添付ファイル (ファイルシステム以外) をリストに追加します。 パラメータ: 文字列、ファイル名 [、エンコーディング、タイプ]
関数プロトタイプ: public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {}

認証 -- メソッド 送信者: SMTP::Authenticate()
ファイル: class.smtp.php
注: SMTP 認証を開始するには、Hello() の後に呼び出す必要があります。認証が成功すると、
が返されます。 パラメータ 1 ユーザー名、パラメータ 2 パスワード
関数プロトタイプ: パブリック関数 Authenticate($username, $password) {}

B は B で始まります

$Body--プロパティ 差出人: PHPMailer::$Body
ファイル: class.phpmailer.php
説明: 電子メールのコンテンツ、HTML またはテキスト形式

C で始まる

$CharSet--プロパティ 差出人: PHPMailer::$CharSet
ファイル: class.phpmailer.php
説明: 電子メールのエンコーディング、デフォルトは iso-8859-1

$confirmReadingTo--プロパティ From: PHPMailer::$confirmReadingTo ファイル class.phpmailer.php
説明: 返品レシート?

$ContentType--プロパティ 差出人: PHPMailer::$ContentType
ファイル: class.phpmailer.php
説明: ドキュメントのタイプ。デフォルトは「text/plain」です

$CRLF--プロパティ 差出人: PHPMailer::$ContentType
ファイル: class.phpmailer.php
説明: SMTP 応答の末尾の区切り文字 (SMTP 応答行の終わり?)

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 (cc) と BCC (bcc) を含むすべての受信者をクリアします

ClearAttachments--メソッド 送信元: PHPMailer::ClearAttachments()
ファイル: class.phpmailer.php
説明書: クリアアタッチメント

BCC のクリア--メソッド From: PHPMailer::ClearBCCs() ファイル class.phpmailer.php
説明: BCC (Bcc) をクリア

ClearCustomHeaders--メソッド
差出人: PHPMailer::ClearCustomHeaders()
ファイル: class.phpmailer.php
説明: カスタムヘッダーをクリア

ClearReplyTos--メソッド
送信者: PHPMailer::ClearReplyTos()
ファイル: class.phpmailer.php
指示: 相手に明確に返信してください

閉じる--メソッド
送信元: SMTP::Close()
ファイル: class.smtp.php
説明: SMTP 接続を閉じます

接続 -- メソッド
送信元: 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 デバッグ出力

データ-メソッド
送信元: SMTP::Data()
ファイル: class.smtp.php
説明: データ コマンドとメッセージ情報をサーバーに送信します (sendsthemsg_datatotheserver)

E で始まる

$Encoding--プロパティ
差出人: PHPMailer::$Encoding
ファイル: class.phpmailer.php
説明: 電子メールのエンコード方式を設定します。オプション: 「8 ビット」、「7 ビット」、「バイナリ」、「base64」、および「quoted-printable」。

$ErrorInfo--プロパティ
送信者: PHPMailer::$ErrorInfo
ファイル: class.phpmailer.php
説明: SMTP メールの最後のエラー メッセージを返します

展開 -- メソッド
送信元: SMTP::Expand()
ファイル: class.smtp.php
説明: メーリング リスト内のすべてのユーザーを返します。成功した場合は配列を返し、それ以外の場合は false を返します (Expand は名前を取得し、サーバーに the_list_ のメンバーであるすべてのユーザーをリストするように要求します。Expand はその結果の配列を返し、falsefan エラーが発生します。)

F で始まる:

$From--プロパティ
From: PHPMailer::$ファイル class.phpmailer.php
から 説明: 送信者の電子メール アドレス

$FromName--プロパティ
差出人: PHPMailer::$FromName
ファイル: class.phpmailer.php
説明: 送信者のタイトル

H で始まる:

$Helo--プロパティ
差出人: PHPMailer::$Helo
ファイル: class.phpmailer.php
説明: SMTPHelo を設定します。デフォルトは $Hostname(メッセージの SMTPHelo を設定します(デフォルトは $Hostname))

$Host--プロパティ
送信者: PHPMailer::$Host
ファイル: class.phpmailer.php
説明: SMTP サーバーを設定します。形式は次のとおりです: ホスト名 [ポート番号] (smtp1.example.com:25 と smtp2.example.com など) は両方とも有効です

$ホスト名--プロパティ
差出人: PHPMailer::$ホスト名
ファイル: class.phpmailer.php
説明: Message-Id および andReceivedheaders に設定されたホスト名は、$Helo でも使用されます。空の場合、デフォルトは SERVER_NAME または 'localhost.localdomain'

こんにちは--メソッド
送信者: SMTP::Hello()
ファイル: class.smtp.php
説明: HELO コマンドを SMTP サーバーに送信します

ヘルプ--メソッド
送信元: SMTP::Help()
ファイル: class.smtp.php
注: キーワードがある場合は、キーワードのヘルプ情報を取得します

最初は次のとおりです。

IsError--メソッド
送信者: PHPMailer::IsError()
ファイル: class.phpmailer.php
説明: エラーが発生したかどうかを返します

HTML--メソッド
送信者: PHPMailer::IsHTML()
ファイル: class.phpmailer.php
説明: レターが HTML 形式であるかどうかを設定します

IsMail--メソッド
From:PHPMailer::IsMail()
ファイル: class.phpmailer.php
説明: メール送信にphpのmail機能を使用するかどうかを設定します

IsQmail--メソッド
From: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」、または「smtp」) のいずれか。

メール--メソッド 送信元: SMTP::Mail()
ファイル: class.smtp.php
説明: $from の電子メール アドレスから処理を開始し、true または false を返します。 true の場合、
の送信を開始します

N で始まる:

いいえ--メソッド 送信元: SMTP::Noop()
ファイル: class.smtp.php
説明: NOOP コマンドを SMTP サーバーに送信します

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--オブジェクト
差出人: PHPメーラー
ファイル: class.phpmailer.php
説明: PHPMailer-PHPemailtransportclass

Q から始まります

終了--メソッド
送信者: SMTP::Quit()
ファイル: class.smtp.php
説明: エラーが発生しない場合は、Quit コマンドをサーバーに送信します。次に靴下を閉じます。そうでない場合は $close_on_error が true

R で始まる

受信者--方法
送信元: SMTP::Recipient()
ファイル: class.smtp.php
説明: To を使用して RCPT コマンドを SMTP に送信します。パラメーターは $to

です。

リセット--メソッド
送信元: SMTP::Reset()
ファイル: class.smtp.php
説明: RSET コマンドを送信して、進行中の転送をキャンセルします。成功した場合は true、それ以外の場合は false を返します

S は次で始まります:

$Sender--プロパティ
差出人: PHPMailer::$Sender
ファイル: class.phpmailer.php
説明: メッセージの送信者メール (リターン パス) を設定します。空でない場合は、mtp モードの 'MAILFROM' のメール送信経由で送信されます。

$Sendmail--プロパティ
差出人: PHPMailer::$Sendmail
ファイル: class.phpmailer.php
説明: 送信プログラムのディレクトリを設定します

$SMTPAuth--プロパティ
送信元: PHPMailer::$SMTPAuth
ファイル: class.phpmailer.php
説明: SMTP に認証が必要かどうかを設定し、ユーザー名とパスワードの変数を使用します

$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::$件名
ファイル: class.phpmailer.php
説明: レターの件名を設定します

送信 -- メソッド
送信元: SMTP::Send()
ファイル: class.smtp.php
説明: 指定したメールアドレスからメール送信を開始します

送信 -- メソッド
送信者: 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 のエラーメッセージの言語タイプを設定します。言語ファイルをロードできない場合、デフォルトは english

です。

SMTP--メソッド
送信元: SMTP::SMTP()
ファイル: class.smtp.php
説明: データが既知の状態になるようにオブジェクトを初期化します

SMTP--オブジェクト
送信元: SMTP
ファイル: class.smtp.php
説明: SMTP オブジェクト

SmtpClose--メソッド
送信者: PHPMailer::SmtpClose()
ファイル: class.phpmailer.php
説明: アクティブな SMTP がある場合は、SMTP を閉じます。

T で始まる

$Timeout--プロパティ
差出人: PHPMailer::$Timeout
ファイル: class.phpmailer.php
説明: SMTPサーバーのタイムアウトを設定します(単位:秒)。注: win32 では、この属性は無効です

ターン--メソッド
送信元: SMTP::Turn()
ファイル: class.smtp.php
注: これはオプションの SMTP パラメータです。現時点では、phpmailer はサポートしていません。

Uで始まる

$ユーザー名--プロパティ
差出人: PHPMailer::$ユーザー名
ファイル: class.phpmailer.php
説明: SMTP ユーザー名を設定します

V で始まる

$Version--プロパティ
差出人: PHPMailer::$Version
ファイル: class.phpmailer.php
説明: Phpmailer のバージョンを返します

検証--メソッド
送信元: SMTP::Verify()
ファイル: class.smtp.php
説明: ユーザー名がサーバー経由で検証されているかどうかを確認します

W は次で始まります:

$WordWrap--プロパティ
差出人: PHPMailer::$WordWrap
ファイル: class.phpmailer.php 説明: 1 行あたりの最大文字数を設定し、その数を超えると自動的に行を折り返す


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。