Существует два способа решения вашей проблемы:
- Пул соединений
- Передать работу фоновому процессу
Честно говоря, почти никогда не бывает причин отправлять электронную почту напрямую из веб-запроса PHP - в любом случае электронная почта не гарантирует минимальную задержку, поэтому, если отправка электронной почты в фоновом режиме занимает немного больше времени, это не большая проблема. дело.
Таким образом, лучший и самый простой подход - это просто хранить электронную почту в быстром локальном хранилище (может быть, очередь заданий, например, beanstalkd), а затем иметь совершенно отдельный процесс, проверяющий эту очередь на работу, и выполняющий задачу актуальный SMTP-запрос. Этот длительный скрипт может даже держать одно SMTP-соединение открытым, если хотите.