我目前正在尝试检查电子邮件地址的有效性,首先在DigitalOcean Droplet上使用getmxrr()
或dns_get_record()
使用PHP 7检查MX记录是否存在。
在我的示例中(返回错误的响应),我正在尝试检查域“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
)
但是,如果我直接在DigitalOcean Droplet的控制台上使用nslookup
,我会被告知没有MX记录。
此外,如果我在不同的Droplet上运行dns_get_record()
函数,或者使用在线PHP代码运行器,我也会给出正确的答案(即不存在MX记录)。
我已经接受过DigitalOcean的支持,他们认为PHP在特定的Droplet上发生了一些奇怪的事情,可能还有缓存问题,但我根本无法弄清楚可能导致这种差异的原因,特别是因为我是不要自己缓存任何东西。
按照目前的情况,我唯一能在此Droplet上获得正确响应的选项是运行nslookup
然后解析结果,但如果可能的话我想使用dns_get_record()
。
我很感激任何建议。谢谢!