Вместо того, чтобы отправлять электронное письмо напрямую, почему бы не создать таблицу базы данных для хранения деталей электронной почты. и просто пишите в эту таблицу каждый раз, когда вам нужно отправить электронное письмо.
Затем запустите запланированное задание, которое иногда запрашивает эту таблицу и выполняет отправку почты.
Таким образом, вам не нужно беспокоиться о тайм-ауте страницы php. и в будущем вы также можете извлечь задачу расписания и запустить ее на отдельном сервере, если она использует слишком много ресурсов.