O software de servidor SMTP, como sendmail, postfix e exim, é projetado para lidar com grandes quantidades de e-mail, tente novamente em caso de problemas temporários, etc. Seu script não é e não deveria ser inteligente o suficiente para gerenciar todos os intricados do SMTP.
Se for seu servidor, você precisará verificar os registros do servidor gerados para descobrir por que ele rejeitou o e-mail. Se você estiver usando um servidor de terceiros, precisará entrar em contato com o terceiro para descobrir o que está acontecendo com o servidor de e-mail.