Ошибка message has lines too long for transport в Exim указывает на то, что одна или несколько строк в вашем сообщении превышают максимальную длину, разрешенную для транспортировки. В SMTP протоколе существует ограничение на длину строки, обычно это 998 символов, но некоторые почтовые серверы могут иметь более строгие ограничения.
Как проявляется проблема?
Не отправляются письма почтовым сервером 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:
- С помощью любого текстового редактора откройте конфигурационный файл
/etc/exim4/exim4.conf.template(/etc/exim/exim.confдля CentOS и AlmaLinux). - Перейдите в секцию
remote_smtpв строку после параметраdriver = smtp. - По умолчанию,
message_linelength_limitне прописывается в конфигурационном файле, поэтому его нужно указать вместе с требуемым значением, напримерmessage_linelength_limit=10000
Если проблема не решается, возможно, стоит обратиться к документации Exim или сообществу поддержки для получения более конкретных рекомендаций.
