Назад | Перейти на главную страницу

Как справиться с тем, что на VPS одновременно открыт только один SMTP-сокет?

У меня есть VPS, на котором размещено около 30 доменов. В каждом домене у меня есть несколько учетных записей электронной почты. Всего более 150 аккаунтов. За последние пару недель я заметил, что иногда (несколько раз в день, в основном в часы пик) несколько писем (от 1 до 10) не отправляются, а откладываются. В почтовом журнале есть сообщение «В соединении отказано». Через некоторое время они в конечном итоге успешно отправляются. Некоторые отправляются через 5 минут, некоторые через 2-3 часа, но все они отправляются.

Я веб-дизайнер с неплохим знанием программирования, но, к сожалению, небольшим опытом работы с Linux (Centos7).

Не сумев самостоятельно найти проблему, я обратился к хостинговой компании моего VPS. Они сказали, что на самом деле они ограничили все VPS, чтобы они могли открыть только один SMTP-сокет за раз. Они сделали это в качестве меры по борьбе со спамерами, попадающими в черный список своих IP-адресов (или целых диапазонов IP-адресов). Предложили перейти на Dedicated или найти другого хоста. Поскольку цена выделенного сервера в несколько раз превышает цену VPS, и мне действительно не нужно переходить на выделенный (я размещаю 30 небольших веб-сайтов, как уже упоминалось), я пытаюсь найти решение этой проблемы.

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

postqueue -f

команда. Но мне нужно выполнить эту команду вручную и столько раз, сколько отложенных писем в очереди. Не говоря уже о необходимости постоянного мониторинга очереди отложенных писем. Очевидно, это не решение моей проблемы.

Я пытался запланировать crone выполнить postqueue команда периодически каждые 5 минут, но после первого выполнения я получил ошибку что-то вроде Неизвестной команды postqueue или command not found или что-то подобное ... Я думаю, это как-то связано с переменными среды, но сейчас это выходит за рамки моих знаний. Кроме того, если в очереди 10 отложенных писем, только одно будет отправлено с каждым. cron исполнение. Таким образом, последнее письмо будет отправлено через 50 минут, что все еще не лучшее решение. Мне понадобится cron, чтобы запускать что-то вроде этого Run crone каждые 5 минут (или что-то в этом роде)

while (there are deferred emails in the queue)
{
    postqueue -f
}

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

Были ли у вас подобные проблемы? Как мне жить с этим ограничением сокетов SMTP на моем VPS? Должен ли я найти другой хост или вместо этого переключиться на выделенный?

Это может быть актуально: я использую centos 7 на своем VPS и имею панель Plesk для администрирования домена.

Любая помощь была бы замечательной. Спасибо!

РЕДАКТИРОВАТЬ:

Мне удалось запланировать cron с этой командой

/ sbin / postqueue -f

бегать каждые 5 минут (0,5,10,15,20,25,30,35,40,45,50,55 * * * *). Но, как объяснялось выше, это все еще не идеальное решение.