Как включить конвейерную обработку в Exim4?

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

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

Кто-нибудь может помочь?

1 ответ

Во-первых, слово "конвейерная обработка" имеет два значения в SMTP.

  1. Команды PIPELINING = клиент smtp подключается и просто запускает команды EHLO, MAIL FROM, RCPT TO и DATA одновременно (exim называет это синхронизацией команд)
  2. PIPELINING messages = клиент smtp подключается и отправляет несколько сообщений на одно соединение.

Похоже, они говорят о #2. Согласно http://www.exim.org/exim-html-current/doc/html/spec_html/ch41.html, что касается конвейерной передачи к хостам через соединения TLS:

Exim отправляет несколько сообщений по одному и тому же соединению TCP/IP, запуская совершенно новый процесс доставки для каждого сообщения, передавая сокет от одного процесса другому. Эта реализация плохо подходит для использования TLS, потому что с соединением TLS связано довольно много информации о состоянии, а не просто идентификация сокета. Передача всей информации о состоянии в новый процесс невозможна. Следовательно, exim закрывает существующий сеанс TLS перед передачей сокета новому процессу. Новый процесс может затем попытаться начать новый сеанс TLS и, в случае успеха, может попытаться повторно пройти аутентификацию, если используется AUTH, перед отправкой следующего сообщения.

Что это означает, вместо того, что вы ожидаете:

connect->starttls->msg1->msg2->...msgX->quit

Exim делает это:

connect->starttls->msg1->end_session->starttls->msg2->end_session...->quit

Вышесказанное по памяти, я не могу вспомнить, включал ли end_session отключение или нет. Но я однажды помог парню устранить это поведение в IRC, и он понял, что приведенный выше абзац означает, что он не будет транслироваться в соответствии с первым описанным способом, если для шифрования сеанса используется STARTTLS. Поэтому, к сожалению, единственный комментарий, который у меня есть, заключается в том, что если вы не используете TLS для этого конкретного хоста, он должен начать конвейеризацию так, как они этого хотят, но я считаю, что это не очень хороший ответ, так как я считаю, что все передачи электронной почты должны быть зашифрованы,

Другие вопросы по тегам