Среда , 14 Ноябрь 2018
Home / Vbulletin 4 / Доработка очереди при отправка электронной почты через Cron | Vbulletin 4
cron почты Vbulletin
cron почты Vbulletin

Доработка очереди при отправка электронной почты через Cron | Vbulletin 4

Если вы уже поставили новую версию форума Vbulletin 4.2, то вы должны были обратить внимание на новую функцию «отправка электронной почты через cron», эта функция включена по-умолчанию. И настроена она так, что за одну партию отправляется по 10 писем, каждая партия посылается в очередь и постепенно очищается. Также есть настройки в задержки электронной почты, которые позволяют установить различные задержки между каждыми сообщениями в партии партий, 1-5 секунд, тут не особо важно. Так же есть задержки между партиями писем, которые настроены через планировщик задач. Cron создает задачу для каждого пакета электронных писем, и по умолчанию она равна 10 минутам.

Автор: Алексей Раков

Основные проблема при таком раскладе для рассылки писем:

Проблема появиться на больших форумах, которые имеют в себе очень много активных пользователей. Пролистывая забугорные официальные сайты по Vbulletin, я заметил множество жалоб от пользователей. В основном жалобы связанны с тем, что очень большая задержка при рассылке. И пользователи очень долго могут не получать письма. Если взглянуть в очередь почтовых сообщений в базе данных, можно обомлеть, особенно когда видишь от 3000 до 6000 писем в очереди. Напомню, по умолчанию 10 писем в пакете. А задержка между пакетами 10 минут, в запланированных задачах Cron, по умолчанию. А теперь представьте себе, сколько времени потребуется, чтобы очистить очередь отправки, хотя бы в 3000 писем?

vbmailqueue.sh

Так как же нам вычислить оптимальное значение для числа сообщений в одну партию? Я вам помогу 🙂 Если у вас VPS или иной выделенный сервер, и вы имеете доступ по SSH, есть прекрасный скрипт написанный одним умельцем из-за бугра. Что может данный скрипт:

– отображение всей почтовой очереди

– расчет количества писем которые обратно вернулись в почтовую очередь.

– предоставление последнего значения идентификатора очереди.

– обработка текущих параметров электронной почты в AdminCP

– отметки о входящих и исходящих данных по времени в текстовый файл, для просмотра и анализа.
В этой статье вы найдете сам файл Vbmailqueue.sh . Просто измените 5 переменных по своим данным, загрузите на сервер и сделайте его исполняемым. Если вы загрузили скрипт в /home/tools/vbmailqueue.sh

chmod +x
/home/tools/vbmailqueue.sh

cd /home/tools
./vbmailqueue.sh view
./vbmailqueue.sh count

Вы можете запускать все вручную или поставить в задачи Cron. После сбора статистики, можно посмотреть информацию обращая внимание на размер очереди почты, а затем настроить варианты электронной почты в AdminCP.

Вывод vbmailqueue.sh
Опции меню — просмотр полной очереди почты, подсчет количества писем в очереди и отладка скрипта.

root@ [~/tools]# ./vbmailqueue.sh
./vbmailqueue.sh view
./vbmailqueue.sh count
./vbmailqueue.sh debug

Это пример просмотра пакетной обработки электронной почты одного клиента. Сообщения в пакете увеличелись с 10 до 5000 по умолчанию. До этого в его очереди было 6000 писем.

root@ [~/tools]# ./vbmailqueue.sh count
——————————————————————
vbmailqueue.sh 0.0.3 – George Liu (eva2000) vbtechsupport.com
——————————————————————
As at: Mon Jun 4 07:51:04 CDT 2012
——————————————————————
First Mail Queue ID: 14181939
Last Mail Queue ID: 14181940
——————————————————————
vBulletin Mail Queue row size is: 2
——————————————————————
vBulletin email settings are set as follows:
+—————-+————+——————–+————–+
| varname | grouptitle | value | defaultvalue |
+—————-+————+——————–+————–+
| smtp_pass | email | | |
| smtp_tls | email | ssl | none |
| smtp_user | email | no-reply@gmail.com | |
| smtp_port | email | 465 | 25 |
| smtp_host | email | smtp.gmail.com | |
| use_smtp | email | 0 | |
| utf8encode | email | 0 | 0 |
| usebulkheader | email | 0 | 0 |
| needfromemail | email | 0 | |
| bounceemail | email | | |
| mail_delay | email | 0 | 0 |
| emailsendnum | email | 5000 | 50 |
| mailqueue | email | 1 | 1 |
| emailfloodtime | email | 10 | 60 |
| usemailqueue | email | 1 | 1 |
| secureemail | email | 1 | 1 |
| enableemail | email | 1 | 1 |
| displayemails | email | 1 | 1 |
+—————-+————+——————–+————–+
——————————————————————
Stats Output saved at:
/root/vbmailqueuelogs/mailqueue_040612-075104.log
——————————————————————
total 4.0K
-rw-r–r– 1 root root 2.2K Jun 4 07:51 mailqueue_040612-075104.log
——————————————————————

Просмотр всех записей в очереди Vbulletin

root@ [~/tools]# ./vbmailqueue.sh view
——————————————————————
vbmailqueue.sh 0.0.3 – George Liu (eva2000) vbtechsupport.com
——————————————————————
As at: Mon Jun 4 07:51:12 CDT 2012
——————————————————————
+————-+————+
| mailqueueid | dateline |
+————-+————+
| 14181939 | 1338814229 |
| 14181940 | 1338814244 |
+————-+————+
——————————————————————
Stats Output saved at:
/root/vbmailqueuelogs/mailqueue_040612-075112.log
——————————————————————
total 8.0K
-rw-r–r– 1 root root 2.4K Jun 4 07:51 mailqueue_040612-075104.log
-rw-r–r– 1 root root 681 Jun 4 07:51 mailqueue_040612-075112.log
——————————————————————

В качестве альтернативы, если ваш почтовый сервер может справится с нагрузкой, просто отключите отправку писем по Cron, установив в AdminCP -> vBulletin Options -> Email Options -> Use Cron Based Sending = NO. Думаю это вы понимаете.

Если у вас виртуальный хостинг без SSH / Telnet доступа, вы можете проверить размер почтовой очереди через AdminCP -> Maintenance -> Diagnostics -> System Information -> Table Status. Найти очередь почтовых сообщений и проверьте размеры пакетов.

В принципе есть три способа контроля задержки и очереди сообщений.

– Изминить размеры пакетов.

– Изменения Cron в запланированных задачах для обработки очереди.

– Отключить Cron для отправки электронных писем.

Файл прикреплен к посту.

Рейтинг статьи

0%

Рейтинг

Оцените данный материал!

Download
User Rating: 5 ( 1 votes)

About artscripts

Check Also

восстановление vbulletin часть 6

Взломали форум — начинаем восстанавливать (Часть 6)

Настала время заменить все файлы Vbulletin форума новой копией. Для этого скачаем новый zip архив …

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.