「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP を使用して電子メールを安全に配信する: スパムのない電子メールに SMTP を使用するためのガイド

PHP を使用して電子メールを安全に配信する: スパムのない電子メールに SMTP を使用するためのガイド

2024 年 11 月 8 日に公開
ブラウズ:303

Deliver Emails Safely with PHP: A Guide to Using SMTP for Spam-Free Emails

ここでは、PHP SMTP を使用してスパム フォルダーに到達せずに電子メールを送信する方法の段階的な例を示します

PHPMailer ライブラリを使用します。これは、SMTP 経由での電子メールの送信を簡素化し、到達性の向上に役立ちます。これらの手順に従って、電子メールがスパム フォルダーに到達しないように SMTP を適切に設定する方法を学びます。

ステップ 1: PHPMailer をインストールする

まず、PHPMailer ライブラリをインストールする必要があります。 Composer.
を使用してこれを行うことができます。

composer require phpmailer/phpmailer

Composer をお持ちでない場合は、GitHub から PHPMailer を手動でダウンロードして、プロジェクトに含めることができます。

ステップ 2: PHP メール スクリプトを作成する

SMTP で PHPMailer を使用して電子メールを送信するためのスクリプトを記述する新しいファイル send_email.php を作成します。

isSMTP();                                          // Use SMTP
    $mail->Host = 'smtp.example.com';                         // Set the SMTP server (use your SMTP provider)
    $mail->SMTPAuth = true;                                   // Enable SMTP authentication
    $mail->Username = '[email protected]';               // SMTP username
    $mail->Password = 'your_password';                        // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;       // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                        // TCP port to connect to (587 is common for TLS)

    //Recipients
    $mail->setFrom('[email protected]', 'Your Name');
    $mail->addAddress('[email protected]', 'Recipient Name');  // Add recipient
    $mail->addReplyTo('[email protected]', 'Reply Address');    // Add a reply-to address

    // Content
    $mail->isHTML(true);                                        // Set email format to HTML
    $mail->Subject = 'Test Email Subject';
    $mail->Body    = 'This is a test email sent using PHPMailer and SMTP.';
    $mail->AltBody = 'This is a plain-text version of the email for non-HTML email clients.';

    // Send the email
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

部品ごとの内訳:

  1. PHPMailer 初期化:

    • Composer 経由で必要なファイルをインクルードした後、PHPMailer クラスのインスタンスを作成します。
    • try-catch ブロックは、電子メールの送信中に発生する可能性のある例外を処理するために使用されます。
  2. SMTP サーバー構成:

    • $mail->isSMTP() は、PHPMailer に電子メールの送信に SMTP を使用するように指示します。
    • $mail->Host = 'smtp.example.com': 'smtp.example.com' を SMTP プロバイダーのホストに置き換えます (例: Gmail の SMTP は 'smtp.gmail.com')。
    • $mail->SMTPAuth = true: これにより、通常 SMTP サーバーで必要となる認証が有効になります。
    • $mail->ユーザー名と $mail->パスワード: ここに SMTP 資格情報を入力します。
    • $mail->SMTPSecure: 暗号化方式を設定します。セキュリティのためにTLS (STARTTLS) が推奨されます。
    • $mail->Port: 一般的な SMTP ポートは、TLS の場合は 587、SSL の場合は 465 です。 SMTP サーバーに必要なポートを使用してください。
  3. 送信者と受信者の設定:

    • $mail->setFrom('[email protected]', 'Your Name'): 送信者の電子メールと名前を指定します。
    • $mail->addAddress('[email protected]', 'Recipient Name'): 受信者の電子メールと名前を追加します。
    • $mail->addReplyTo(): 返信先電子メール アドレスを設定します (オプション)。
  4. メールの内容を設定する:

    • $mail->isHTML(true): 電子メールのコンテンツが HTML であることを指定します。
    • $mail->Subject: 電子メールの件名を設定します。
    • $mail->Body: これは電子メールの HTML コンテンツです。
    • $mail->AltBody: これはメール本文のプレーンテキスト バージョンで、HTML をサポートしていないメール クライアントに役立ちます。
  5. メールを送信中:

    • $mail->send() は電子メールの送信を試みます。成功した場合は、成功メッセージが出力されます。それ以外の場合、エラーが捕捉されて表示されます。

ステップ 3: SMTP 構成とベストプラクティス

メールがスパム フォルダーに振り分けられるのを避けるには、次のベスト プラクティスに従うことが重要です。

  1. 信頼できる SMTP プロバイダーを使用する:

    Gmail、SendGrid、Mailgun などの信頼できる SMTP プロバイダーを使用すると、スパムとしてフラグが立てられる可能性が低くなるため、到達性が向上します。

  2. ドメインを認証する:

    SPF (送信者ポリシー フレームワーク)、DKIM (ドメインキー識別メール)、および DMARC (ドメインベースのメッセージ認証、レポートおよび適合性) レコードをセットアップします。ドメインを使用してメールの正当性を確認します。

  3. スパムコンテンツを避ける:

    電子メールの内容がクリーンであり、スパムとしてフラグが設定されていないことを確認してください。すべて大文字、スパム的な単語 (「無料」、「勝者」など) の過度の使用、リンクの多すぎは避けてください。

  4. プレーンテキストの代替を使用する:

    必ずメールのプレーンテキスト バージョンを含めてください ($mail->AltBody)。一部の電子メール クライアントは、HTML のみの電子メールに不審なフラグを立てます。

  5. 送信者として無料メール サービスを避ける:

    スパムとしてフラグが立てられるのを避けるために、Gmail、Yahoo などの無料サービスではなく、独自のドメインの専門的なメール アドレスを使用してください。

  6. メールごとの受信者数を制限する:

    一括メールを送信する場合は、スパムのフラ​​グが立てられるのを避けるために、1 つのメッセージで多数の受信者に送信するのではなく、適切な一括メール サービスを使用してください。

ステップ 4: スクリプトを実行する

send_email.php ファイルをサーバーにアップロードし、ブラウザまたはコマンド ラインを通じて実行します。

php send_email.php

設定が正しい場合は、次のメッセージが表示されます:

Message has been sent

エラーがある場合は、次のように表示されます:

Message could not be sent. Mailer Error: {Error Message}

結論

PHPMailer と適切な SMTP 設定を使用すると、メールが確実に送信され、スパム フォルダーに入る可能性が低くなります。簡単な概要は次のとおりです:

  1. PHPMailerをインストールして、SMTP によるメール送信を簡素化します。
  2. 認証と暗号化を使用して SMTP を正しく設定します。
  3. 適切なドメイン検証を使用 (SPF、DKIM、DMARC) して配信可能性を高めます。
  4. クリーンでスパムのないメール コンテンツを作成し、必ずプレーンテキスト バージョンを含めてください。
  5. スクリプトを実行し、成功メッセージまたはエラー ログを監視します。

このアプローチにより、配信性が向上し、メールがスパムとしてマークされる可能性が減ります。

お気軽にフォローしてください:

  • リンクトイン
  • GitHub
リリースステートメント この記事は次の場所に転載されています: https://dev.to/mdarifulhaque/deliver-emails-safely-with-php-a-guide-to-using-smtp-for-spam-free-emails-12d4?1権利侵害、削除するには、[email protected] までご連絡ください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3