我目前正在尝试通过首先检查是否存在 MX 记录、在 DigitalOcean 液滴上使用getmxrr()
或使用 PHP 7 来检查电子邮件地址的有效性。dns_get_record()
在我的示例中(返回不正确的响应),我试图检查域“nuwatches.com”上的电子邮件地址。使用dns_get_record(”nuwatches.com”, DNS_ALL)
,我返回了一个包含 MX 记录的数组,即使我知道这在现实中不存在:
[5] => Array (
[host] => nuwatches.com.com
[class] => IN
[ttl] => 27
[type] => MX
[pri] => 1
[target] => mail.user-mail.net
)
但是,如果我nslookup
直接从 DigitalOcean 液滴上的控制台使用,我会被正确地告知不存在 MX 记录。
此外,如果我dns_get_record()
在不同的 Droplet 上运行该函数,或者使用在线 PHP 代码运行器,我也会得到正确答案(即不存在 MX 记录)。
我已经与 DigitalOcean 支持人员交谈过,他们认为 PHP 在那个特定的液滴上发生了一些奇怪的事情,可能是缓存问题,但我根本不知道是什么导致了这种差异,特别是因为我没有缓存任何东西我。
就目前而言,在此液滴上获得正确响应的唯一选择是运行nslookup
然后解析结果,但如果可能的话,我想使用dns_get_record()
。
我会很感激任何建议。谢谢!