Използвам библиотеката SwiftMailer на PHP за масово изпращане на имейли (следвайки CANSPAM и RFC).
Всичко работи добре, докато не срещна домейн, който няма съответен MX запис в DNS. В този момент моят скрипт просто увисва -- предполагам, че е така, защото sendmail не се е върнал. Това може да продължи само няколко минути или може да продължи много часове.
Потвърдих, че адресите, на които моят скрипт (наклонена черта sendmail) висят, са тези без DNS MX запис. Всичко останало се изпраща добре.
Има ли начин да проверя дали DNS MX съществува в PHP, преди да се опитам да изпратя съобщението? Това мащабируемо ли е (т.е. това допълнително търсене в DNS наистина ли ще ме забави, или ще бъде добре b/c, тогава MX се кешира локално, за да се използва от sendmail при доставяне на съобщението)?
Благодаря за вашата помощ
--- АКТУАЛИЗАЦИЯ --- Опитах решенията по-долу, които ми помогнаха да стесня проблема. Изглежда не е въпросът дали MX записът съществува или не. Проблемът е, че DNS търсенето отнема цяла вечност, за да се върне. Има ли лесен начин да задам времето за изчакване, така че ако DNS не се върне след ‹ 5 секунди, мога да продължа?