ホームページ >バックエンド開発 >PHPチュートリアル >PHPMailer PHPメール送信クラス
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 は非常に小さく、シンプル、便利、そして高速です
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 サイト構築ポータル');
$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) {}
$Body--プロパティ
差出人: PHPMailer::$Body
ファイル: class.phpmailer.php
説明: 電子メールのコンテンツ、HTML またはテキスト形式
$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」です
$do_debug--プロパティ
送信元: SMTP::$do_debug
ファイル: class.smtp.php
説明: SMTP デバッグ出力
データ-メソッド
送信元: SMTP::Data()
ファイル: class.smtp.php
説明: データ コマンドとメッセージ情報をサーバーに送信します (sendsthemsg_datatotheserver)
$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 エラーが発生します。)
$From--プロパティ
From: PHPMailer::$ファイル class.phpmailer.php
から
説明: 送信者の電子メール アドレス
$FromName--プロパティ
差出人: PHPMailer::$FromName
ファイル: class.phpmailer.php
説明: 送信者のタイトル
$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 を使用するかどうか
$Mailer--プロパティ
差出人: PHPMailer::$Mailer
ファイル: class.phpmailer.php
説明: 送信方法 (「mail」、「sendmail」、または「smtp」) のいずれか。
メール--メソッド
送信元: SMTP::Mail()
ファイル: class.smtp.php
説明: $from の電子メール アドレスから処理を開始し、true または false を返します。 true の場合、
の送信を開始します
いいえ--メソッド
送信元: SMTP::Noop()
ファイル: class.smtp.php
説明: NOOP コマンドを SMTP サーバーに送信します
$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
終了--メソッド
送信者: SMTP::Quit()
ファイル: class.smtp.php
説明: エラーが発生しない場合は、Quit コマンドをサーバーに送信します。次に靴下を閉じます。そうでない場合は $close_on_error が true
受信者--方法
送信元: SMTP::Recipient()
ファイル: class.smtp.php
説明: To を使用して RCPT コマンドを SMTP に送信します。パラメーターは $to
リセット--メソッド
送信元: SMTP::Reset()
ファイル: class.smtp.php
説明: RSET コマンドを送信して、進行中の転送をキャンセルします。成功した場合は true、それ以外の場合は false を返します
$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 を閉じます。
$Timeout--プロパティ
差出人: PHPMailer::$Timeout
ファイル: class.phpmailer.php
説明: SMTPサーバーのタイムアウトを設定します(単位:秒)。注: win32 では、この属性は無効です
ターン--メソッド
送信元: SMTP::Turn()
ファイル: class.smtp.php
注: これはオプションの SMTP パラメータです。現時点では、phpmailer はサポートしていません。
$ユーザー名--プロパティ
差出人: PHPMailer::$ユーザー名
ファイル: class.phpmailer.php
説明: SMTP ユーザー名を設定します
$Version--プロパティ
差出人: PHPMailer::$Version
ファイル: class.phpmailer.php
説明: Phpmailer のバージョンを返します
検証--メソッド
送信元: SMTP::Verify()
ファイル: class.smtp.php
説明: ユーザー名がサーバー経由で検証されているかどうかを確認します
$WordWrap--プロパティ
差出人: PHPMailer::$WordWrap
ファイル: class.phpmailer.php 説明: 1 行あたりの最大文字数を設定し、その数を超えると自動的に行を折り返す