PHP 電子メール検出: 電子メールが正常に送信されたかどうかを判断します。
Webアプリケーションを開発する際、登録確認やパスワードのリセット、通知など、ユーザーとのコミュニケーションのためにメールの送信が必要になることが多く、メール機能は欠かせないものです。ただし、電子メールが実際に正常に送信されたかどうかを確認できない場合があるため、電子メールの検出を実行して、電子メールが正常に送信されたかどうかを判断する必要があります。この記事では、PHPを使用してこの機能を実装する方法を紹介します。
1. SMTP サーバーを使用して電子メールを送信する
SMTP プロトコルは信頼性の高い電子メール送信メカニズムを提供するため、まず、SMTP サーバーを使用して電子メールを送信する必要があります。 PHP では、SMTP クラス ライブラリを使用してこの関数を実装できます。
require 'path/to/phpmailer/autoload.php'; use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; $mail = new PHPMailer(true); try { $mail->SMTPDebug = 0; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'smtp.example.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'your-email@example.com'; // SMTP username $mail->Password = 'your-email-password'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to $mail->setFrom('your-email@example.com', 'Your Name'); $mail->addAddress('recipient@example.com', 'Recipient Name'); $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Test Subject'; $mail->Body = 'This is a test email.'; $mail->send(); echo 'Email has been sent.'; } catch (Exception $e) { echo 'Email could not be sent. Error: ', $mail->ErrorInfo; }
このコードは、PHPMailer クラス ライブラリを使用し、SMTP サーバーの関連情報を構成し、テスト電子メールを送信します。
2. 電子メール ステータスの検出
電子メールを送信しても、その電子メールが実際に受信されたことを意味するわけではないため、電子メールが正常に送信されたかどうかを判断するには、電子メール ステータス検出を使用する必要があります。 PHP では、SMTP サーバーの応答を通じてメールのステータスを取得できます。
if ($mail->send()) { $response = $mail->getSMTPInstance()->getLastResponse(); if (preg_match('/^250/', $response)) { echo 'Email has been sent.'; } else { echo 'Email could not be sent. Response: ' . $response; } } else { echo 'Email could not be sent. Error: ', $mail->ErrorInfo; }
電子メールの送信後、このコードは getSMTPInstance()
メソッドを通じて SMTP サーバーから応答を取得し、正規表現を使用して応答が 250# で始まるかどうかを判断します。 ##.そうであれば、電子メールは正常に送信されたことを意味します。
$mail->addCustomHeader('Return-Receipt-To: your-email@example.com'); $mail->addCustomHeader('Disposition-Notification-To: your-email@example.com'); if ($mail->send()) { echo 'Email has been sent.'; } else { echo 'Email could not be sent.'; }このコードは、電子メールを送信する前に、
addCustomHeader() メソッドを通じて受信電子メールに関する情報を追加します。受信者がメールを開いて既読を確認すると、受信メールが届き、メールが受信され読まれたかどうかを確認できます。
以上がPHP 電子メール検出: 電子メールが正常に送信されたかどうかを判断します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。