PHPの基礎 - メール

提供: MochiuWiki : SUSE, EC, PCB

2021年2月26日 (金) 02:47時点におけるWiki (トーク | 投稿記録)による版 (ASCIIメールの送信(mail関数))

概要

mail関数またはmb_send_mail関数を使用して、メールを送信する手順を記載する。


ASCIIメールの送信 : mail関数

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


メールの宛先、タイトル、本文を指定してメールを送信する。

以下に、メールの宛先(メールアドレス)の書式を示す。
ただし、Windowsで使用する場合は、User <user@example.com>の形式は使用できない。

user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>


メールのタイトルに指定する文字列は、改行できない。

メールの本文は、複数行の文字列を指定できる。
改行する場合は¥n(LF)を使用する。
なお、各行の長さは70文字を超えてはいけないため、wordwrap関数を使用して70文字以上含まれる行は改行する。

 $message = wordwrap($message, 70, "¥n");


追加ヘッダは、From、Cc、Reply-To等のヘッダとして、記述する内容を指定する。
複数のヘッダを追加する場合は、¥r¥n(CRLF)で区切る。
ヘッダの中で、Fromヘッダのみ必須となっている。
引数のadditional_headersは省略可能であるが、php.iniファイルでsendmail_fromを設定していない場合は、Fromヘッダの記述が必要である。

追加パラメータは、sendmail等へパラメータを渡す場合に使用する。
ただし、Windowsの場合は使用しない。

例えば、以下のような記述となる。

 $to = 'you@example.com';
 $subject = 'Test Title';
 $message = "This is Test mail¥nMulti Line";
 $message = wordwrap($message, 70, "¥n");
 $headers = 'From: my@example.com';
 
 mail($to, $subject, $message, $headers);


 <?php
    $to = 'you@example.com';
    $subject = 'test mail';
    $message = "This is Test mail¥nMulti Line";
    $message = wordwrap($message, 70, "¥n");
    $headers = 'From: my@example.com'."¥r¥n".
               'To: you@example.com'."¥r¥n".
               'X-Mailer: PHP/Mail';
 
    if(mail($to, $subject, $message, $headers))
    {
       print('成功');
    }
    else
    {
       print('エラー');
    }
 ?>