在不发送电子邮件的情况下验证电子邮件地址
随着垃圾邮件过滤和电子邮件列表验证的出现,开发人员通常需要一种验证电子邮件地址的方法无需发送电子邮件。 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中文网其他相关文章!