- Home ›
- PEAR入門 ›
- メール送信(PEAR::Mail) ›
- HERE
メールを送信する
Mailクラスのオブジェクトを作成後にメールの送信を行います。メールの送信を行うにはMailクラスで用意されている「send」メソッドを使います。
Mail::send() mixed send (mixed $recipients, array $headers, string $body)
引数: $recipients 配列かカンマで区切った受取アドレスの文字列 $headers ヘッダの連想配列。ヘッダ名が配列のキー、ヘッダの値が配列の値 $body メール本文 戻り値: TRUE か、または失敗した場合は PEAR_Error オブジェクト
1番目の引数に実際に送信するメールアドレスを記述します。複数ある場合には配列かまたはカンマ(,)で区切ってメールアドレスを指定します。(後でメールのヘッダーの設定を行いますが、ヘッダーに書かれた「To」や「Cc」で指定したメールアドレスではなく「recipients」に指定したメールアドレスにメールが送信されることに注意して下さい)。
2番目の引数には送信するメールのヘッダーを連想配列の形で記述します。メールのヘッダーには色々な値を記述できますが一般的には次のようなヘッダーを設定します。
ヘッダー | 説明 |
---|---|
To | メールの送信先 |
Cc | メールの送信先(カーボンコピー) |
Bcc | メールの送信先(ブラインドコピー) |
From | メールの差出人 |
Subject | メールの件名 |
他にも多くのメールのヘッダーが使われています。
3番目の引数にはメールの本文を表す文字列を指定します。
例えば次のように記述します。
$params = array( "host" => "xxx.xxx.xxx.xxxx", "port" => 25, "auth" => false ); $mailObject = Mail::factory("smtp", $params); $recipients = "xxx@xxx.xxx, xxx@xxx,xxx"; $headers = array( "To" => "xxx@xxx.xxxx", "From" => "xxx@xxxx.xxxx", "Subject" => "Test Mail" ); $body = "This is test mail"; $mailObject -> send($recipients, $headers, $body);
日本語を扱う場合には別の処理が必要となります。詳しくは次のページで確認します。
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<?php require_once("Mail.php"); $params = array( "host" => "xxx.xxx.xx", "port" => 587, "auth" => true, "username" => "xxx@xxx.xxx.xx", "password" => "xxxxxxxxxx" ); $mailObject = Mail::factory("smtp", $params); $recipients = "xxx@xxx.xxx.xx"; $headers = array( "To" => "xxx@xxx.xxx.xx", "From" => "xxx@xxx.xxx.xx", "Subject" => "Test Mail" ); $body = "This is test mail"; $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="./sample4-1.php">メール送信</a> </p> </body> </html>
ではメール送信用HTMLファイルをWWWサーバに設置しブラウザで見てみると下記のように表示されます。
「メール送信」と書かれたリンクをクリックするとメールが送信されます。無事メールが送信されたかどうか確認して下さい。
( Written by Tatsuo Ikura )