Вы ведете себя в сером списке , и это работает для них!
Greylisting - это антиспамовая мера, которая пытается выявить почтовых клиентов с плохим поведением. Большая часть спам-ботов генерирует сообщения и пытается отправить их немедленно, и если они терпят неудачу, они сдаются (потому что им все равно), в то время как почтовый сервер с хорошим поведением прислушается к ответу и попытается позже. Для них ваш скрипт выглядит просто как такой плохо ведущий себя клиент.
Поэтому решение состоит в том, чтобы попытаться отправить его снова через несколько минут, однако в PHP это очень сложно сделать. Правильный способ сделать это - настроить локальный почтовый сервер и отправить его через него - он сразу же примет ваше сообщение и будет заниматься самой последующей доставкой без вашего участия, включая любые серые списки и другие меры противодействия спаму.