Несколько возможных причин, по которым PHPmailer может быть медленным при массовой отправке писем:
- Перегрузка сервера. stackoverflow.com Например, если для каждой итерации установлен режим ожидания, например, 20 секунд, то сервер может быть перегружен. stackoverflow.com В таком случае можно сократить время ожидания до нескольких секунд, например, до 2 или 3. stackoverflow.com
- Проблемы с аутентификацией. php-forum.com В некоторых случаях задержка возникает из-за строки аутентификации, например, SMTPAuth. php-forum.com Можно попробовать её отключить, чтобы ускорить отправку писем. php-forum.com
- Проблемы с сервером SMTP. stackoverflow.com Возможно, на нём есть длинная очередь сообщений, которые ждут отправки. stackoverflow.com Также некоторые почтовые серверы задерживают отправку писем с неизвестных серверов, чтобы предотвратить спам. stackoverflow.com
- Антиспам-меры. github.com Например, greetdelay, которые заставляют клиентов ждать. github.com В таком случае стоит проверить настройки почтового сервера и убедиться, что все исходные IP-адреса включены в белый список. github.com
Для диагностики и устранения проблемы рекомендуется провести отладку, исследовать ошибку и при необходимости настроить таймаут отправки. qna.habr.com При интенсивной отправке писем можно рассмотреть вариант вынесения отправки в отдельный сервис. qna.habr.com