0

在通过语法发送邮件之前,我确实验证了在文本框中输入的电子邮件地址。但是如何使用 PHP 验证或验证正确的电子邮件地址?

if(mail($emailto)) {
   echo("status=Sent");
}
else {
   echo("status=Failed");
}

例如,如果您输入 xxxxxxxxaddfb54@yahoo.com,它会接受一个有效的电子邮件 ID!我们怎么知道它存在与否?

4

3 回答 3

3

你不能。这就是互联网的本质:你不能绝对确定任何主机(更不用说主机上的帐户)在任何时候都处于给定状态,除非你可以控制主机。

您可以通过来自 mailer 守护程序的返回消息来判断失败,该消息特别指出传递尝试失败。但这是大多数私人邮件不会向您提供的礼貌。

在成功交付的情况下,您几乎永远不会收到返回验证电子邮件,除非您已专门设置服务器以这种方式运行。

于 2012-09-27T02:15:18.143 回答
0

用户在阅读时会告诉你:)

你不能像已经说过的那样,所以一定要提供一个“请重新给我发电子邮件”链接,这样用户就可以输入正确的电子邮件[如果他或她错了],或者只是重新发送如果您的 smtp 服务器有任何问题。

于 2012-09-27T02:17:31.433 回答
0

无法判断电子邮件地址是否存在(除非您尝试联系的服务器具有某种 API)。但是,您可以检查该是否可以通过电子邮件发送到:

function checkEmailDomain($email) {
   list(,$domain) = explode('@', $email);
   if (checkdnsrr($domain, 'MX')) {
      return TRUE;
   }
   else if (checkdnsrr($domain, 'A')) {
      return TRUE;
   }
   return FALSE;
}

请注意,这也不是 100% 可靠的。如果你想使用它,它应该纯粹是建议性的。

于 2012-09-27T02:17:35.283 回答