Предложения по улучшению производительности при отправке уведомлений по электронной почте? - PullRequest
0 голосов
/ 24 апреля 2010

Моему приложению требуется около пары секунд, чтобы выполнить код и отправить электронное письмо прямо сейчас на тестовом сервере, где больше ничего не работает. Не уверен, что это типично / ожидается. Я также использую php-фреймворк для работы с почтой Kohana, а не почту php для удобства, если это имеет значение. Всегда ли лучше запланировать работу cron для отправки писем каждые 5 минут или около того? Или я должен немедленно отправлять электронные письма, и я просто что-то не так делаю?

Сценарий вставляет строку в базу данных и уведомляет соответствующую группу о том, что строка была создана. Группы обычно <20 человек, поэтому я просто делаю цикл, каждый раз вызывая помощника Коханы по электронной почте для каждого члена группы. </p>

Ответы [ 4 ]

2 голосов
/ 24 апреля 2010

http://swiftmailer.org/ отличный и надежный почтовик. Возможно, альтернативный подход - правильный ответ.

2 голосов
/ 24 апреля 2010

Не уверен насчет внедрения помощника Kohana, но вот что говорит php doc:

Примечание: стоит отметить, что функция mail () не подходит для большие объемы электронной почты в цикле. Эта функция открывает и закрывает SMTP сокет для каждого письма, которого нет очень эффективный. Для отправки большое количество писем, смотрите » PEAR :: Mail и » PEAR :: Mail_Queue пакеты.

0 голосов
/ 26 апреля 2010

Для быстрого решения см. gearman В основном вы отправляете запрос на отправку электронного письма в очередь gearman, и остальная часть вашего сценария может выполняться, пока Gearman завершает электронную часть вашего сценария в фоне.

0 голосов
/ 25 апреля 2010

Что-то не так, для групп менее двадцати пользователей это должно быть быстрым. > 100 увеличит время обработки.

Посмотрите настройки вашего сервера. Или используйте функции IMAP ...

...