私はメール配信に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
。