Pear Mail HTML
メ-ル送信
Pear Mail HTMLメ-ル送信 XAMPP ファイル作成-1
XAMPP から HTML メ-ルを送信するファイルを作成します。
ファイル内容は、63Pear Village のトップの左サイドナビ
「Pear Mail HTML メ-ル送信」 の中の
Pear Mail HTML メ-ル送信 XAMPP PHP ファイル
を見てください。
初期設定
header('Content-type: text/html; charset=utf-8');
mb_language('ja');
mb_internal_encoding("UTF-8");
PHP内部の日本語をユニコードでエンコードすると宣言をします。
この3行がないと mb_encode_mimeheader('この部分'); が文字化けすることがあります。
ここが Pear Mail を使用するときの関所です。
mb_encode_mimeheader() については後でまた説明します。
Pear::Mail 読込み
次に、
require_once 'Mail.php';
require_once 'Mail/mime.php';
で、Pear::Mail を読込みます。
Pear::Mail はメ-ル送信するための基本パッケ-ジです。
Pear::Mail_Mime は添付ファイルや HTML メ-ルを送信するためのパッケ-ジです。
メ-ル送信基本パラメ-タ定義
Pear Mail の smtp の機能を利用して xampp から Gmail 経由で発信します。
Pear Mail の sendmail の機能を利用して XAMPP から Gmail 経由で発信することも可能ですが、
この場合 XAMPP の中の php.ini と sendmail.ini の変更、その他が必要となるので、今回はより簡単な
smtp の機能を利用することにします。
パラメ-タ $params = array( ) 定義
● host
Gmail から発信することとします。
Gmail の送信サ-バ名を設定します。
'host' => 'smtp.gmail.com',
● port
Gmailではportは 587 を設定するよう指定されていますので
'port' => 587
● 認証
mailでは認証は必須ですので、
'auth' => TRUE
● username
あなたが使用しているGmail アドレス
*******@gmail.com
@より前の部分 ****** の文字を設定します。
'username' => '*******'
とします。
● password
あなたの Gmail アドレスのパスワ-ドを、仮に、
12345678 とすれば、
'password' => '12345678'
とします。
送付先 $recip
メ-ル送信先 $recip を定義します。
自分にメ-ル送信しないとデバッグできませんので、
$recip = *******@gmail.com
とします。
他にもメ-ルアドレスをお持ちならそれを設定することも可能です。
例えば、
$recip = ***********@yahoo.co.jp
としてもかまいません。
mb_encode_mimeheader 関数
ここで、mb_encode_mimeheader 関数について説明します。
これがわからないと次へ進めません。
メ-ルのヘッダ部分の文字コードは、ISO-2022-JP の Base64 の文字コ-ドで書かれています。
ですから、mb_encode_mimeheader() で MIME ヘッダエンコーディング方式に従った文字列
にエンコードしてあげる必要があります。
この関数は、ASCII 表現の文字列を返します。
第1引数:$str 対象の文字列
引き渡す文字列の文字コードは UTF-8 に一致させる必要があります。
今回のケ-スでは、PHP 内部の日本語を mb_internal_encoding("UTF-8"); で UTF-8 にしておきます。
ただ通常は、PHP内部の日本語も、$str も UTF-8 にデフォルトでなっているケ-スが多いようです。
第2引数:$charset
文字エンコーディング名。デフォルトはISO-2022-JP。
第3引数:$transfer_encoding
MIME エンコーディングの方式を指定。
"B" (Base64) または "Q" (Quoted-Printable) のどちらか。
デフォルトは"B"。
戻り値
エンコードされた文字列
要約
MIMEヘッダ内で使われる文字列をエンコードします。
基本的には ISO-2022-JP の Base64 にエンコードします。
ヘッダー $headers = array( ) 定義
● From
送付元を設定します。
和文で設定します。全角文字が1文字以上必要です。
mb_encode_mimeheader 関数は、対象文字列をMIMEヘッダ内で使われる文字列、すなわち
ISO-2022-JP の Base64 にエンコードします。
引数は対象文字列のみでよいです。
ただし、Gmail の場合は受取ったメ-ルの送信元は、
63Pearより <*******@gmail.com>
のように Gmail アドレスが必ず表示されるため送信元を詐称することはできません。
'From' => mb_encode_mimeheader('63Pearより'),
● To
まずは自分宛にしてみましょう。
'To' => '<'.$recip.'>',
● Subject
件名です。
和文で設定します。全角文字が1文字以上必要です。
mb_encode_mimeheader 関数で ISO-2022-JPのBase64 にエンコードします。
'Subject' => mb_encode_mimeheader('Pear HTML_Mail テスト送信'));
メッセ-ジ文字コ-ド構築
文字コ-ドをどのように設定してメ-ルを発信するかの設定です。
メ-ル送信での一般的な文字コ-ドを設定します。
連想配列 $html_params に文字コ-ドを設定します。
$html_params = array(
// ヘッダパ-トに使用するエンコ-ドの種類
'html_encoding'=>'base64',
// プレインテキストパ-トに使用する文字コ-ドセット
'text_charset'=>'ISO-2022-JP',
// ヘッダパ-トに使用する文字コ-ドセット
'head_charset'=>'ISO-2022-JP',
// HTML パ-トに使用する文字コ-ドセット
'html_charset'=>'ISO-2022-JP');
Mail_mime インスタンス生成
Mail_mime インスタンスを生成し、送信メ-ルの外形を完成させます。
$mime = new Mail_mime();
後はメ-ル本文や添付ファイルをこのなかに入れ込めば終わりです。
引続きメ-ル本文を作成する必要がありますが、少し長くなりましたので 一旦ここで区切ります。
Pear Mail HTMLメ-ル送信 XAMPP ファイル作成-2 に続く
Pear Mail HTML メ-ル送信概要 に戻る
Pear Mail HTML メ-ル送信レンタルサ-バ準備 に戻る