我确实在发送邮件之前验证了在文本框中输入的电子邮件地址,即语法。但是如何使用PHP验证或验证正确的电子邮件地址?
if(mail($emailto)) {
echo("status=Sent");
}
else {
echo("status=Failed");
}
例如,如果您输入xxxxxxxxaddfb54@yahoo.com,则它接受为有效的电子邮件ID!我们知道它是否存在?
答案 0 :(得分:3)
你做不到。这就是互联网的本质:你不能绝对确定任何主机(更不用说主机上的账户)在任何时候都处于给定状态,除非你能控制主机。
您可以通过邮件程序守护程序的返回消息告知失败,具体说明传递尝试失败。但这是礼貌,大多数私人邮件不会延伸到你。
除非您专门设置服务器以表现出这种方式,否则在成功交付的情况下,您几乎不会收到回复验证电子邮件。
答案 1 :(得分:0)
用户在阅读时会告诉你:)
您不能如上所述,所以请务必提供“请重新发送电子邮件”链接,以便用户能够输入正确的电子邮件[如果他或她是错误的,或者只是在你的smtp服务器出现任何问题时再发送一次。
答案 2 :(得分: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%可靠的。如果你想使用它,那应该是纯粹的建议。