PHPメールとは何ですか?
PHPメールは、PHPスクリプトから電子メールを送信するために使用される組み込みのPHP関数です。
メール関数は次のパラメータを受け入れます。
- 電子メールアドレス
- 件名
- メッセージ
- CCまたはBCの電子メールアドレス
- これは、重要なイベントについてユーザーに通知する費用効果の高い方法です。
- 提供されたコンテンツを電子メールで送信するWebサイトに連絡フォームを提供して、ユーザーが電子メールで連絡できるようにします。
- 開発者はこれを使用して、システムエラーを電子メールで受け取ることができます
- ニュースレターの購読者にメールを送信するために使用できます。
- パスワードを忘れたユーザーにパスワードリセットリンクを送信するために使用できます
- これを使用して、アクティベーション/確認リンクを電子メールで送信できます。 これは、ユーザーを登録してメールアドレスを確認するときに役立ちます
このチュートリアルでは、次のことを学びます-
メールPHPを使用する理由/時期
PHPを使用してメールを送信する
PHPメール関数の基本構文は次のとおりです。
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
ここに、
- 「$ to_email_address」はメール受信者のメールアドレスです
- 「$ subject」はメールの件名です
- 「$ message」は送信するメッセージです。
- 「「[$headers]」はオプションで、CC、BCCなどの情報を含めるために使用できます
- CCはカーボンコピーの頭字語です。 興味のある人にコピーを送信したい場合に使用します。つまり、会社に送信された苦情メールをCCとして苦情掲示板に送信することもできます。
- BCCは、ブラインドカーボンコピーの頭字語です。 CCに似ています。 BCCセクションに含まれているメールアドレスは、他の受信者には表示されません。
Simple Mail Transmission Protocol(SMTP)
PHPメーラーは、SMTP(Simple Mail Transmission Protocol)を使用してメールを送信します。
ホストされているサーバーでは、SMTP設定はすでに設定されています。
SMTPメールの設定は、PHPインストールフォルダーの「php.ini」ファイルから構成できます。
ローカルホストでのSMTP設定の構成Windowsでxamppを使用していると仮定して、ディレクトリ「C: xampp php」で「php.ini」を見つけます。
- メモ帳または任意のテキストエディタを使用して開きます。 この例ではメモ帳を使用します。 編集メニューをクリックします
- 検索ダイアログメニューが表示されます
- [次を検索]ボタンをクリックします
- エントリを見つけます
- [mail function]
- ; XAMPP: MercuryのようなSMTPサーバーを使用する場合は、半列を削除しないでください
- ; SMTP = localhost
- ; smtp_port = 25
- SMTPとsmtp_portの前のセミコロンを削除し、SMTPをsmtpサーバーに設定し、ポートをsmtpポートに設定します。 設定は次のようになります
- SMTP = smtp.example.com
- smtp_port = 25
- 注意 SMTP設定は、Webホスティングプロバイダーから取得できます。
- サーバーで認証が必要な場合は、次の行を追加します。
- auth_username = このメールアドレスはスパムボットから保護されています。 表示するにはJavaScriptを有効にする必要があります。
- auth_password = example_password
- 新しい変更を保存します。
- 再起動 Apache サーバ。
PHPメールの例
簡単なメールを送信する例を見てみましょう。
<?php $to_email="name @ company . com"; $subject="Testing PHP Mail"; $message="This mail is sent using the PHP mail function"; $headers="From: noreply @ company . com"; mail($to_email,$subject,$message,$headers); ?>
出力:
注意: 上記の例では、4つの必須パラメーターのみを使用しています。
上記の架空のメールアドレスを実際のメールアドレスに置き換える必要があります。
電子メールユーザー入力のサニタイズ
上記の例では、簡単にするために、電子メールアドレスのソースコードとその他の詳細にハードコードされた値を使用しています。
ユーザーが詳細を入力して送信するための連絡フォームを作成する必要があると仮定します。
- ユーザーが誤ってまたは意図的にヘッダーにコードを挿入すると、スパムメールが送信される可能性があります
- このような攻撃からシステムを保護するために、メールが送信される前に値をサニタイズおよび検証するカスタム関数を作成できます。
filter_var組み込み関数を使用して、電子メールアドレスを検証およびサニタイズするカスタム関数を作成しましょう。
Filter_var関数filter_var関数は、ユーザー入力データをサニタイズおよび検証するために使用されます。
基本的な構文は次のとおりです。
<?php filter_var($field, SANITIZATION TYPE); ?>
ここに、
- 「filter_var(…)」は検証およびサニタイズ関数です
- 「$ field」は、フィルタリングされるフィールドの値です。
- 「サニタイズタイプ」は、次のようなフィールドで実行されるサニタイズのタイプです。
- FILTER_VALIDATE_EMAIL –有効な電子メールアドレスの場合はtrueを返し、無効な電子メールアドレスの場合はfalseを返します。
- FILTER_SANITIZE_EMAIL –電子メールアドレスから不正な文字を削除します。 info @domain。(com)は このメールアドレスはスパムボットから保護されています。 表示するにはJavaScriptを有効にする必要があります。。
- FILTER_SANITIZE_URL –URLから不正な文字を削除します。 http://[email protected]éは> http://[email protected]を返します
- FILTER_SANITIZE_STRING -文字列値からタグを削除します。 太字 b>は太字になります。
以下のコードは、カスタム関数を使用して安全なメールを送信します。
<?php function sanitize_my_email($field) { $field = filter_var($field, FILTER_SANITIZE_EMAIL); if (filter_var($field, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } } $to_email="name @ company . com"; $subject="Testing PHP Mail"; $message="This mail is sent using the PHP mail "; $headers="From: noreply @ company. com"; //check if the email address is invalid $secure_check $secure_check = sanitize_my_email($to_email); if ($secure_check == false) { echo "Invalid input"; } else { //send email mail($to_email, $subject, $message, $headers); echo "This email is sent using PHP Mail"; } ?>
出力:
安全なメール
電子メールは、意図しない受信者によって送信中に傍受される可能性があります。
これにより、電子メールの内容が意図しない受信者に公開される可能性があります。
セキュアメールは、ハイパーテキスト転送プロトコルセキュア(HTTPS)を介して電子メールを送信することにより、この問題を解決します。
HTTPSは、メッセージを送信する前にメッセージを暗号化します。
概要
- PHPに組み込まれている関数mail()は、PHPスクリプトからメールを送信するために使用されます
- 安全なメールを送信するには、データの検証とサニタイズチェックが不可欠です
- PHPに組み込まれている関数filter_var()は、データのサニタイズと検証を実行するための使いやすく効率的な方法を提供します
Hope this helps!
Source link