PHP mail()関数を使用してメールを送信する方法

PHP

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」を見つけます。

  • メモ帳または任意のテキストエディタを使用して開きます。 この例ではメモ帳を使用します。 編集メニューをクリックします
  • 検索ダイアログメニューが表示されます
  • [次を検索]ボタンをクリックします

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 -文字列値からタグを削除します。 太字は太字になります。

以下のコードは、カスタム関数を使用して安全なメールを送信します。

<?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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です