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

Как я могу заставить sendmail отправлять большие объемы электронной почты в один пункт назначения smarthost в одном файле.

sendmail 8.14.x

Этот вопрос отчасти связан с Отправляет ли sendmail все нижестоящий smarthost в "одном файле"? но отдельно, чтобы представить информацию по конкретному вопросу.

У меня есть почтовая среда со следующей настройкой:

Application Servers -> sendmail relay -> cloud email service -> internet

Для нижележащей облачной службы требуется, чтобы электронные письма передавались им в одном файле. Если он видит несколько одновременных SMTP-подключений с одного и того же общедоступного IP-адреса, он принимает одно и откладывает остальные с ошибкой класса 400. Очевидно, это серьезно ограничивает исходящую пропускную способность, и мы работаем с поставщиком облачных услуг, чтобы попытаться решить эту проблему. А пока мне нужно найти способ, чтобы sendmail отправлял все за одно соединение.

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

Я знаю, что это глупое требование, и, как я уже упоминал, мы работаем с облачным провайдером, но пока есть ли конфигурация sendmail, которая могла бы удовлетворить это требование при балансировке доставки как новых сообщений, так и сообщений в очереди?

Ты можешь

  1. использовать relay почтовик для доставки на смарт-хост (relay используется по умолчанию)
  2. делать relay почтовая программа дорогая, чтобы избежать попыток доставки "сразу"
  3. делать relay почтовая программа использует настраиваемую группу очереди с собственным более частым периодом выполнения очереди
  4. если вышеперечисленное работает, вы можете рассмотреть возможность использования постоянных обработчиков очереди, чтобы уменьшить задержки с задержкой

sendmail.mc

dnl Declare relay queue group with queue run period 10m
dnl Do not forget to create /var/spool/mqueue/relay directory 
QUEUE_GROUP(`relay', `P=/var/spool/mqueue/relay I=10m')
dnl OPTIONAL: define minimum time BETWEEN delivery attempt of any message
define(`confMIN_QUEUE_AGE',`25m')dnl

dnl  Make sendmail honor mailers' expensive flag
define(`confCON_EXPENSIVE',`True')dnl
dnl Add F=e "expensive" flag to relay mailer flags
define(`RELAY_MAILER_FLAGS',`e')dnl
dnl make relay mailer select custom queue group for relay mailer
define(`RELAY_MAILER_QGRP',`relay')dnl