Сведения о вопросе

Kirushaa

14:22, 24th August, 2020

Теги

php   email   queue    

Email обслуживания в php

Просмотров: 430   Ответов: 6

Каков наиболее правильный способ отправки email минимальной 1000 или более в PHP? Есть ли надежная email техника массового обслуживания, которая способна справиться с этим?



  Сведения об ответе

DO__IT

16:11, 3rd August, 2020

Вы можете просто вставить ваши письма в таблицу базы данных очереди почты, и иметь отдельный процесс проверки очереди и пакетной отправки определенного числа сразу.


  Сведения об ответе

DAAA

13:51, 18th August, 2020

Для этого есть проверенное решение: PEAR Mail_Queue

Для меня это прекрасно работает.


  Сведения об ответе

dump

14:21, 6th August, 2020

как и предлагал Меркуцио, я вставил бы новую запись в таблицу очереди почты для каждого email, ожидающего отправки, а затем использовал бы отдельный процесс (например, CRON), чтобы периодически проверять таблицу на наличие любых элементов в очереди.

если какие-либо письма находятся в очереди (и email не настраивается для каждого получателя), я бы тогда сгруппировал письма по доменам и отправил блоки вместе, чтобы уменьшить общее количество писем, которые должны быть отправлены, т. е. если у вас есть 1000 писем в очереди, а 250-в аккаунтах gmail, я бы отправил эти 250 в 25 блоках по 10 (помните, чтобы получатели Bcc не видели друг друга).

чтобы на самом деле отправить почту, я хотел бы использовать PEAR mail через функцию php по mail()

после отправки email либо удалите запись(ы) из очереди, либо измените флаг состояния, чтобы показать, что она была отправлена и цикл-я бы также добавил счетчик, чтобы отслеживать сообщения электронной почты, которые не удалось отправить, и удалить их после x неудачных попыток

для преодоления проблем с таймаутом я бы либо, (в зависимости от ситуации) - установите значение set_time_limit() в x секунд и следите за временем выполнения скрипта (убивая скрипт после (x-1) секунды) - вызовите скрипт из командной строки, чтобы избежать таймаутов - установить ограничение на количество писем, которые скрипт может отправить за одно выполнение


  Сведения об ответе

ASSembler

11:07, 8th August, 2020

Конечно, таблица базы данных может быть идеей. Но как насчет отправки 1000 электронных писем с вложением 2 Мб? вы должны были бы также принять это во внимание. У меня самого была проблема, и я в конце концов решил записать электронное письмо в базу данных, а файлы-в файловую систему. Сценарий электронной почты, который я использовал, затем прочитал записи базы данных и попытался извлечь вложения для отправки.


  Сведения об ответе

9090

21:06, 1st October, 2020

Вы уверены, что вам нужно сделать эту почтовую очередь самостоятельно?

Просто доставьте всю почту агенту передачи почты локальной машины (sendmail...) и пусть это позаботится о очереди и отправке. В конце концов, именно для этого он и был создан.

Другими словами: Не беспокойтесь об этом!


  Сведения об ответе

LIZA

12:40, 5th August, 2020

Я вообще-то полагался на халтуру. У меня есть список баз данных из email адресов, а затем я использую мета-редирект на себя с увеличивающимся параметром 'offset', который указывает, какая строка в базе данных мне нужна. Перенаправление сервера вызывает проблемы, поскольку браузеры предполагают, что затраченное время указывает на бесконечный цикл.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться