PHP を使用すると、スクリプトから直接電子メールを送信できます。
PHP mail() 関数は、スクリプトから電子メールを送信するために使用されます。
文法
メール(宛先、件名、メッセージ、ヘッダー、パラメータ)
パラメータ | 説明する |
---|---|
に | 必須。電子メール受信者を指定します。 |
主題 | 必須。電子メールの件名を指定します。注:このパラメータには改行文字を含めることはできません。 |
メッセージ | 必須。送信するメッセージを定義します。行を区切るには LF (n) を使用する必要があります。各行は 70 文字までに制限する必要があります。 |
ヘッダー | オプション。 From、Cc、Bcc などの追加ヘッダーを指定します。追加のヘッダーは CRLF (rn) を使用して区切る必要があります。 |
パラメータ | オプション。メーラーの追加パラメータを指定します。 |
注: PHP でメール関数を実行するには、メール システム (sendmail、postfix、qmail など) がインストールされ、実行されている必要があります。使用されるプログラムは、php.ini ファイルの構成設定によって定義されます。詳細については、PHP Mail リファレンス マニュアルを参照してください。
PHP 経由で電子メールを送信する最も簡単な方法は、テキスト電子メールを送信することです。
次の例では、最初に変数 ($to、$subject、$message、$from、$headers) を宣言し、次にこれらの変数を mail() 関数で使用して電子メールを送信します。
<?php$to = "[email protected]"; // メール受信者 $subject = "パラメータ email"; // メールのタイトル $message = "こんにちは! これはメールの本文です。"; $ from = "[email protected]"; // メール送信者 $headers = "From:" . $from; // ヘッダー情報の設定 mail($to,$subject,$message,$headers); 「メールは送信されました」;?>
PHP を使用すると、サイト上にフィードバック フォームを作成できます。次の例では、指定された電子メール アドレスにテキスト メッセージを送信します。
<html><head><meta charset="utf-8"><title>コーダー チュートリアル (codercto.com)</title></head><body><?phpif (isset($_REQUEST['email' ] )) { // email パラメータを受信した場合、メールを送信します。 // メールを送信します $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $_REQUEST['message'] ; mail("[email protected]", $subject, $message, "From:" . $email); echo "メールは正常に送信されました";} else { // メールがない場合パラメータを設定し、フォームを表示します echo "<form method='post' action='mailform.php'> 電子メール: <input name='email' type='text'><br> 件名: <input name='subject' type='text'><br> メッセージ:<br> <textarea name='message' rows='15'cols='40'> </textarea><br> <input type='submit'> </form >";}?></body></html>説明例:
まず、メールアドレス入力ボックスが入力されているかどうかを確認します
初めてページにアクセスした場合など、未入力の場合はHTMLフォームを出力します。
記入されている場合(フォーム記入後)、フォームからメールを送信してください
フォームに記入して送信ボタンをクリックすると、ページがリロードされ、電子メールの入力がリセットされ、電子メールが正常に送信されたことを示すメッセージが表示されることがわかります。
注:この単純な電子メールは安全ではありません。このチュートリアルの次の章では、電子メール スクリプトのセキュリティ リスクについて詳しく説明します。これをより安全にするためにユーザー入力を検証する方法を説明します。
PHP mail() 関数の詳細については、PHP Mail リファレンス マニュアルを参照してください。