メール配信通知は正しく配信されましたが、実際のメールは正しく配信されませんでした。

メール配信通知は正しく配信されましたが、実際のメールは正しく配信されませんでした。

私はメール配信にExim 4を使用するように私たちの部門のDebianワークステーションを設定しました。また、すべての電子メールを受信できるようにエイリアスを作成しました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には問題なく表示されます。返品一部クローンジョブの実行が私に正しく送信されました。

ただし、ほとんどのクローン操作は電子メールの送信に失敗し、代わりに次の電子メールを受け取ります。

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: <root@echo>
Received: from root by echo with local (Exim 4.89)
    (envelope-from <root@echo>)
    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 <root@echo> ansible-pull -U [email protected]:…/….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: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <E1f7Jqz-0007jU-7y@echo>
Date: Sat, 14 Apr 2018 14:00:25 +0200
X-Exim-DSN-Information: Due to administrative limits only headers are returned

なぜこのようなことが起こるのか本当に理解できません。すべてのメールが送信されないか、ほぼすべて成功します。 cronのEメールがどのように失敗するのですか?最大ワークステーションでは成功しますが、他のワークステーションでは成功し、常に失敗する電子メールが配信されますか?


システムの exim に関連するシステムログエコーは非常にまれです。

# 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@… <root@echo> 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@… <root@echo> 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のワークステーションがあり、その一部には数日間連続してメッセージが配信されるため、これはまだ意味がありません。メッセージの長さは各システムで同じでなければなりません(ホスト名の長さを除く)、現在電子メールを受信して​​いる2つのシステムの名前は長くなります。

答え1

ログの例:

[Eメール保護] R = smarthost T = remote_smtp_smarthost:メッセージが大きすぎます(送信制限= 1)

これは、最大LINE制限である998文字に達したことを意味します。

解決策:

"/etc/exim4/exim4.conf.localmacros"に次の行を追加します。

IGNORE_SMTP_LINE_LENGTH_LIMIT = 1

その後、exim4を再起動します。

答え2

この報告されたバグを経験したようです。exim4: 非常に長い行に対する偽の拒否応答

これは実際にはメッセージ自体ではなく、長すぎる行を意味します。fmt -sメッセージを転送する前にメッセージをパイプしてみてくださいexim4

関連情報