如何在PHP中验证邮箱地址

12 浏览
0 Comments

如何在PHP中验证邮箱地址

我有一个用于验证邮件地址的函数:

function validateEMAIL($EMAIL) {
    $v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
    return (bool)preg_match($v, $EMAIL);
}

这个函数能够检查邮件地址是否有效吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以使用filter_var实现此功能。


0
0 Comments

验证电子邮件地址是否格式良好最简单、最安全的方法是使用filter_var()函数:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // invalid emailaddress
}

此外,您还可以检查域名是否定义了MX记录:

if (!checkdnsrr($domain, 'MX')) {
    // domain is not valid
}

但这仍然不能保证邮件是否存在。找出这个需要通过发送确认邮件来实现。


现在,您已经获得了简单的答案,如果您想了解电子邮件地址验证,请继续阅读,否则只需使用快速答案并进行下一步即可。毫不怀疑。

尝试使用正则表达式验证电子邮件地址是一项“不可能”的任务。我会说,你所编写的正则表达式是无用的。关于电子邮件地址有三个rfc,并写一个正则表达式捕捉错误的电子邮件地址,同时不会出现假阳性,这是任何凡人都无法做到的。请查看此列表以测试(成功和失败)PHP filter_var()函数使用的正则表达式。

即使内置的PHP函数、电子邮件客户端或服务器都无法做到完美。但在大多数情况下,filter_var是最佳选择。

如果您想知道PHP(目前)用于验证电子邮件地址的正则表达式模式,请参见PHP源代码

如果您想了解更多关于电子邮件地址的知识,我建议您开始阅读规范,但我不得不警告您,这并不是一份易读的文档:

0