- Home ›
- PEAR入門 ›
- メール送信(PEAR::Mail) ›
- HERE
本文をファイルから取得する
本文に設定する文字列を直接指定する代わりに本文を記述したファイルを別途用意し、本文をファイルとして指定することができます。「setTxtBody」メソッドをもう一度見て下さい。
Mail_Mime::setTxtBody() boolean setTxtBody (string $data [, boolean $isfile = FALSE])
引数: $data 本文を表す文字列。又は本文を表すファイル名 $isfile 1番目の引数がファイル名の場合にはtrueを指定 戻り値: 成功時には TRUE、失敗時にはPEAR_Error
本文をファイル名で指定する場合は1番目の引数にファイル名を指定し、2番目の引数に「true」を設定します。ファイル名は実行されるPHPファイルが置かれているディレクトリからの相対パスで指定します。
例えば次のように記述します。
$mimeObject = new Mail_Mime("¥n"); $mimeObject -> setTxtBody("./file/mail.txt", "true");
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<?php require_once("Mail.php"); require_once("Mail/mime.php"); $params = array( "host" => "xxx.xxx.xx", "port" => 587, "auth" => true, "username" => "xxx@xxx.xxx.xx", "password" => "xxxxx" ); $mailObject = Mail::factory("smtp", $params); $recipients = "xxx@xxx.xxx.xx"; $mimeObject = new Mail_Mime("¥n"); $mimeObject -> setTxtBody("./file/mail.txt", "true"); $bodyParam = array( "head_charset" => "ISO-2022-JP", "text_charset" => "ISO-2022-JP" ); $body = $mimeObject -> get($bodyParam); $addHeaders = array( "To" => "xxx@xxx.xxx.xx", "From" => "xxx@xxx.xxx.xx", "Subject" => mb_encode_mimeheader("テストメール") ); $headers = $mimeObject -> headers($addHeaders); $mailObject -> send($recipients, $headers, $body); ?>
※SMTPサーバやメール送信先などは書き換えて使用して下さい。ポート番号も「Outbound Port25 Blocking」などの関係で25番ポートではなく587番ポートなどが使われていますがこちらも環境に合わせて変更して下さい。
メール送信用PHPを呼び出すためのHTMLファイルを用意しました。
<html> <head><title>PHP TEST</title></head> <body> <p>メール送信テスト</p> <p> <a href="./sample10-1.php">メール送信</a> </p> </body> </html>
また本文用のファイルとして次のファイルを用意しました。このファイルは「pearmailtest4.php」ファイルが置かれているディレクトリの中に「file」と言うディレクトリを作成してその中に置いてあります。
2007年6月。 日本語メールのテストです。 ファイルに本文を記述し、ファイルを読み込んで本文を 作成しています。
ではメール送信用HTMLファイルをWWWサーバに設置しブラウザで見てみると下記のように表示されます。
「メール送信」と書かれたリンクをクリックするとメールが送信されます。実際に届いたメールは次のようになります。
( Written by Tatsuo Ikura )