Уведомления о доставке почты доставлены правильно, реальная почта – нет

Я настроил рабочие станции Debian в нашем отделе для использования Exim 4 для доставки почты. Также я создал псевдоним, такой, что я получаю все root письма. Конфигурация Exim 4 (через Ansible и debconf) имеет следующие настройки:

 exim4_dc_eximconfig_configtype: internet exim4_dc_readhost: … exim4_dc_smarthost: … exim4_dc_use_split_config: 'true' exim4_dc_hide_mailname: 'true' exim4_dc_mailname_in_oh: 'true' 

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

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

 This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: ueding@… (generated from root@echo) Reporting-MTA: dns; echo Action: failed Final-Recipient: rfc822;ueding@… Status: 5.0.0 Return-path:  Received: from root by echo with local (Exim 4.89) (envelope-from ) id 1f7Jqz-0007jU-7y for root@echo; Sat, 14 Apr 2018 14:00:25 +0200 From: root@echo (Cron Daemon) To: root@echo Subject: Cron  ansible-pull -U git@github.com:…/….git --private-key /root/.ssh/ansible_pull localhost.yml MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit X-Cron-Env:  X-Cron-Env:  X-Cron-Env:  X-Cron-Env:  Message-Id:  Date: Sat, 14 Apr 2018 14:00:25 +0200 X-Exim-DSN-Information: Due to administrative limits only headers are returned 

Я действительно не понимаю, почему это происходит. Либо вся доставка электронной почты не удалась, либо почти все удалась. Как может электронная почта от cron давать сбой на большинстве рабочих станций, но успешна на других, тогда как электронные письма с ошибками доставки всегда проходят?


Системный журнал, касающийся exim на машине, echo, очень редок:

 # journalctl -u exim4.service -- Logs begin at Tue 2018-03-06 18:35:11 CET, end at Sat 2018-04-14 17:13:08 CEST. -- Apr 02 18:00:30 echo systemd[1]: Starting LSB: exim Mail Transport Agent... Apr 02 18:01:23 echo exim4[27433]: Starting MTA: exim4. Apr 02 18:01:23 echo systemd[1]: Started LSB: exim Mail Transport Agent. 

Просмотр /var/log/exim4/mainlog объяснение на серебряном блюде:

 2018-04-14 14:00:25 1f7Jqz-0007jU-7y <= root@echo U=root P=local S=7948 2018-04-14 14:00:25 1f7Jqz-0007jU-7y ** ueding@…  R=dnslookup T=remote_smtp: message is too big (transport limit = 1) 2018-04-14 14:00:25 1f7Jqz-0007jW-BM <=  R=1f7Jqz-0007jU-7y U=Debian-exim P=local S=1856 2018-04-14 14:00:25 1f7Jqz-0007jU-7y Completed 2018-04-14 14:00:26 1f7Jqz-0007jW-BM => ueding@…  R=dnslookup T=remote_smtp H=… […] X=TLS1.0:RSA_AES_256_CBC_SHA1:256 CV=yes DN="C=DE,ST=…,L=…,O=…,OU=…,CN=…" C="250 2.0.0 Ok: queued as 6FCA1155FC32" 2018-04-14 14:00:26 1f7Jqz-0007jW-BM Completed 

Скорее всего, ошибка «сообщение слишком велико (ограничение транспорта = 1)». Но это все еще не имеет особого смысла, так как у меня есть 30 одинаково настроенных рабочих станций, и для некоторых из них сообщения проходят несколько дней подряд. Длина сообщения должна быть одинаковой для каждой машины (кроме длины имени хоста), а две машины, которые в настоящее время получают свою электронную почту, имеют более длинные имена.

    Я думаю, что вы столкнулись с этой сообщенной ошибкой, exim4: ложный ответ на слишком длинные строки .

    На самом деле это относится к слишком длинным строкам, а не к самому сообщению. Попробуйте передать ваше сообщение через fmt -s прежде чем передать его exim4 .

    пример в журнале:

    email@domain.tld R = smarthost T = remote_smtp_smarthost: сообщение слишком большое (ограничение транспорта = 1)

    это означает, что был достигнут максимальный предел LINE в 998 символов

    решение:

    в «/etc/exim4/exim4.conf.localmacros» добавьте следующую строку:

     IGNORE_SMTP_LINE_LENGTH_LIMIT = 1 

    а затем перезапустите exim4.