PHP mail () функция и масштабируемость - PullRequest
2 голосов
/ 29 августа 2011

предположим, что мой сайт растет так, что мне нужно будет отправлять сотни и тысячи электронных писем в день .... будет ли функция PHP mail () все еще достаточной для решения такого сценария, или мне придется реализовать альтернативное решение? ? Если да, какое решение мне следует искать в таком сценарии?

Ответы [ 3 ]

1 голос
/ 29 августа 2011

Сотни тысяч не будут легкими.Технически это возможно, и ничто не должно вас останавливать, но не ожидайте, что это будет легкая задача.

Сайт, который «должен» отправить эту сумму, должен будет принять во внимание подписание DKIM, что является длительным процессом.

Допустим, например, что для подписи, постановки в очередь и обработки сообщения электронной почты потребуется 0,5 секунды, это всего лишь пример:

100 000 сообщений электронной почты = 50 000 секунд = 13,5 часов

Чтобы добиться цели, вам нужно будет купить X VPS-серверов (желательно в нескольких географических точках) и определить каждый из них как почтовый ретранслятор. Затем используйте систему очередей для отправки ваших писем, используя все эти шлюзы.

Те же 100K электронные письма выше будут отправлены в течение 2 часов, при условии, что у вас есть 6 серверов ретрансляции почты.

Надеюсь, это прояснит некоторые идеи.

0 голосов
/ 29 августа 2011

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

Проверьте - http://sendgrid.com/

Его легко установить, он довольно недорогой, и они гарантируют, что ваша почта попадет вваши клиенты!

0 голосов
/ 29 августа 2011

mail() открывает и закрывает сокет каждый раз, когда отправляет сообщение, так что нет, это не лучшая идея, поскольку эти операции довольно неэффективны.

Лучшее решение - использовать PHP PEAR Mail расширение ;это было разработано для отправки электронных писем в массовом порядке .

В качестве расширения для PEAR Mail есть также Mail_queue , который помещает сообщения в очередь и отправляет их в фоновом режиме.Это может быть лучшим вариантом в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...