Способы оплаты Abuse

При отправке письма Exim возвращает ошибку message has lines too long for transport

27.01.2025, 19:50

Ошибка message has lines too long for transport в Exim указывает на то, что одна или несколько строк в вашем сообщении превышают максимальную длину, разрешенную для транспортировки. В SMTP протоколе существует ограничение на длину строки, обычно это 998 символов, но некоторые почтовые серверы могут иметь более строгие ограничения.

Как проявляется проблема?

Exim возвращает ошибку message has lines too long for transport

Не отправляются письма почтовым сервером Exim, в журнале ошибок сервера возникает ошибка формата:

<id-messages> ** <email-client> R=dnslookup T=remote_smtp: message has lines too long for transport

В чем причина?

В тексте письма присутствует строка с количеством символов, которые суммарно в байтах превышают лимит параметра message_linelength_limit

Какие способы решения?

Если у вас есть длинные строки, попробуйте разбить их на более короткие. Например, заголовки могут быть разбиты с помощью символа переноса строки (CRLF). Контролируете сервер Exim, вы можете изменить параметры конфигурации? Найдите параметр max_line_length в конфигурационном файле Exim и измените его значение на большее, если это возможно и целесообразно.

Если ваше сообщение содержит длинные текстовые блоки, рассмотрите возможность использования MIME для кодирования содержимого. Это может помочь избежать проблем с длиной строк. Также проверьте логи для получения дополнительной информации о том, какие именно строки вызывают проблему. Это может помочь вам быстрее найти и исправить ошибку. У вас должна быть установлена последняя версия Exim, так как в новых версиях могут быть исправлены ошибки или добавлены новые функции. 

Если ничего не помогает

Всё же, лучшим решением будет проверить проблемное письмо: определить и редактировать проблемную строку.
В случае, если провести ревизию письма возможности нет, можно увеличить значение параметра message_linelength_limit:

  1. С помощью любого текстового редактора откройте конфигурационный файл /etc/exim4/exim4.conf.template (/etc/exim/exim.conf для CentOS и AlmaLinux).
  2. Перейдите в секцию remote_smtp в строку после параметра driver = smtp.
  3. По умолчанию, message_linelength_limit не прописывается в конфигурационном файле, поэтому его нужно указать вместе с требуемым значением, например message_linelength_limit=10000

Если проблема не решается, возможно, стоит обратиться к документации Exim или сообществу поддержки для получения более конкретных рекомендаций.