ASCIIメールの送信(mail関数)
それではまずASCIIメールの送信を行ってみます。ASCIIメールと言うのは日本語などが入っていないメールだと考えて下さい。メールの送信を行うには「mail」関数を使用します。
bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )
メールを送信します。 パラメータ: to メールの宛先 subject メールのタイトル message メールの本文 additional_headers 追加ヘッダ additional_parameters 追加パラメータ 返り値: メール送信が受け入れられた場合に TRUE 、それ以外の場合に FALSE
メールの宛先、タイトル、本文を指定してメールを送信します。
メールの宛先はメールのアドレスを記述します。メールアドレスの記述方法は次のような書式があります。
user@example.com user@example.com, anotheruser@example.com User <user@example.com> User <user@example.com>, Another User <anotheruser@example.com>
ただしWindowsで使用する場合は「User <user@example.com>」の形式は使用できません。
メールのタイトルに指定する文字列は改行できません。
メールの本文は複数行の文字列を指定できます。改行する場合はLF「\n」を使用します。なお各行の長さは 70 文字を超えてはいけないことになっている為、「wordwrap」関数を用いて70文字以上含まれる行は改行します。
$message = wordwrap($message, 70, "\n");
追加ヘッダは「From」や「Cc」「Reply-To」などヘッダとして記述したい内容を指定します。複数のヘッダを追加する場合は CRLF「\r\n」で区切ります。ヘッダの中で「From」ヘッダだけは必須となっています。引数の「additional_headers」は省略可能ですが「php.ini」ファイルで「sendmail_from」を設定していない場合には「From」ヘッダの記述が必要です。
追加オプションはsendmailなどへパラメータを渡す場合に使用します。Windows環境の場合は使用しません。
例えば次のような記述となります。
$to = 'you@example.jp'; $subject = 'test mail'; $message = "This is Test mail\nMulti Line"; $message = wordwrap($message, 70, "\n"); $headers = 'From: my@example.jp'; mail($to, $subject, $message, $headers);
では簡単なサンプルプログラムを作成して試してみます。
<html> <head><title>PHP TEST</title></head> <body> <h1>メール送信</h1> <?php $to = 'you@example.jp'; $subject = 'test mail'; $message = "This is Test mail\nMulti Line"; $message = wordwrap($message, 70, "\n"); $headers = 'From: my@example.jp'."\r\n". 'To: you@example.jp'."\r\n". 'X-Mailer: PHP/Mail'; if (mail($to, $subject, $message, $headers)){ print('成功'); }else{ print('エラー'); } ?> </body> </html>
上記を「index1-1.php」の名前で「(Apacheドキュメントルート)\php\mail」に保存します。
そしてブラウザから「http://localhost/php/mail/index1-1.php」へアクセスして下さい。
SMTPサーバにメールの配送を受け入れられた場合には「成功」と表示されます(メール送信が成功するかどうかは別の話しとなります)。上記のサンプルは送信先などが適当なメールアドレスですが実際のメールアドレスに変更して試した結果無事メールは送信できました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。