解決策 1:
エラーが HELO/EHLO データに関するものであると仮定すると、smtp トランスポートで helo_data オプションを使用する必要があります。デフォルトは $primary_hostname です。
remote_smtp:
driver = smtp
helo_data = host.example.com
詳細については、マニュアルを参照してください。
そうでない場合は、いくつかの拒否メッセージの例を含めることをお勧めします。 3 桁のコードとその後の文字列だけです。
解決策 2:
コマンド
sudo dpkg-reconfigure exim4-config
使用するプライマリ ホスト名を求めるプロンプトが表示されます。
解決策 3:
Debian (Lenny) では、ホスト名を /etc/hostname
に設定していることがわかりました ただし、これは再起動するまで認識されません。
$ hostname newhostname
すぐに設定します (ただし、再起動すると失われるため、2 つ行う必要があります)。
exim4 は uname -n
と同じように報告されているようです 、そして私はそれがテストするための便利な方法であることがわかりました.
解決策 4:
exim が送信するホスト名は?
exim4 のログで HELO 名を見つけることができます。 exim4 デーモンを停止し、デバッグを有効にして手動で再起動します:
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(2>&1|egrep 'HELO|EHLO'
一部はオプションです。stderr を stdout にリダイレクトし、ログを egrep
にパイプします。 、HELO または EHLO を含む行以外のすべてをフィルタリングします)。
電子メールを送信すると、次の形式で 1 ~ 2 行が表示されます:
SMTP>> EHLO foobar.example.com
HELO 名は foobar.example.com
です .
この情報を提供する便利なオンライン チェック ツールもいくつかあります (およびその他の便利なツールも多数あります)。 :
- https://www.mail-tester.com (1 日 3 回の無料メール チェックのみ);
- [email protected] (無料);
- [email protected] (フィードバックのほとんどは無料ではありませんが、この目的のために無料です)。
どうすれば変更できますか?
David が提案したようにトランスポート ファイルを編集する代わりに、exim4 定数定義 (?) を使用し、名前を /etc/exim4/conf.d/main/00_local_settings
に設定します。 (分割構成で)、例えば:
REMOTE_SMTP_HELO_DATA=$sender_address_domain
update-exim4.conf
を実行することを忘れないでください exim4 を再起動する前に
/etc/exim4/exim4.conf.template に primary_hostname […] を設定しました
David が述べたように、これはおそらく最良のアイデアではありません。分割構成では、追加することでプライマリ ホスト名を設定できます
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
/etc/exim4/conf.d/main/00_local_settings
で . PRIMARY_HOST_NAME
になりそうです モノリシックな exim4 構成で。