在不發送電子郵件的情況下驗證電子郵件地址
隨著垃圾郵件過濾和電子郵件列表驗證的出現,開發人員通常需要一種驗證電子郵件地址的方法無需發送電子郵件。 PHP 提供了使用 SMTP 的解決方案。
SMTP 驗證
SMTP(簡單郵件傳輸協定)用於傳送電子郵件。 PHP 對SMTP 的支援允許透過兩種方式驗證電子郵件:
1. VRFY 命令:
VRFY 命令查詢伺服器以確認電子郵件收件者是否存在。如果伺服器回應 2.0.0 DSN(遞送狀態通知),則電子郵件地址有效。
範例:
$socket = fsockopen('server', 25); fwrite($socket, "VRFY user\r\n"); $response = fgets($socket);
2. RCPT TO 指令:
RCPT TO 指令嘗試傳送電子郵件。如果收件者不存在,伺服器將使用 5.1.1 DSN 進行回應。
範例:
$socket = fsockopen('server', 25); fwrite($socket, "MAIL FROM:<sender>\r\n"); fwrite($socket, "RCPT TO:<user@domain>\r\n"); $response = fgets($socket);
限制
替代方法
儘管SMTP 驗證存在局限性,但更可靠的方法是使用正則表達式過濾掉無效地址,然後發送帶有驗證連結無效地址的電子郵件。這可以確認使用者的電子郵件地址並防止拼字錯誤。
以上是如何在 PHP 中驗證電子郵件地址而不發送電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!