web-dev-qa-db-ja.com

exim4がHELO / EHLOを送信する場合、送信するホスト名を構成するにはどうすればよいですか?

受信サーバーがHELOチェックを行うと、私のシステムからのメールが拒否されます。システムが間違ったドメイン名を送信していると思います。 exim4を実行しています。 exim4とドメインに関する情報をグーグル検索すると、無関係な結果の悪夢のようなリストが生成されます。同様に、HELO拒否をグーグルで検索すると、SMTP認証をオンにする必要があるOutlookユーザーの群れが生じます。私の人生では、この単純な質問を理解することはできません。どのホスト名がeximから送信され、どのように変更するのですか?

残念ながら、私はeximがネットワーク経由で送信しているものを監視できないため、これを自分でデバッグする方法はありません。私は誰かがこの問題を抱えていて、ただ知っていることを願っています:)。

12
user10066

エラーがHELO/EHLOデータについて不平を言っていると仮定すると、smtpトランスポートでhelo_dataオプションを使用する必要があります。デフォルトは$ primary_hostnameです。

remote_smtp:
    driver = smtp
    helo_data = Host.example.com

詳細は マニュアル を参照してください。

そうでない場合は、拒否メッセージの例をいくつか含めるとよいでしょう。 3桁のコードとその後の文字列だけです。

15
David Pashley

コマンド

Sudo dpkg-reconfigure exim4-config

使用するプライマリホスト名の入力を求めるプロンプトが表示されます。

4
David North

Debian(Lenny)では、/etc/hostnameにホスト名を設定していることがわかりましたが、これは再起動するまで認識されません。

$ hostname newhostname

すぐに設定します(ただし、再起動すると失われるため、2つ実行する必要があります)。

exim4はuname -nと同じように報告するようで、テストするのに便利な方法であることがわかりました。

3

Eximが送信しているホスト名はどれですか?

HELO名はexim4のログで確認できます。 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です。

この情報を提供する便利なオンラインチェックツールもいくつかあります(他にも多くの便利なものがあります)。 :

変更するにはどうすればよいですか?

Davidの提案に従ってトランスポートファイルを編集する代わりに、exim4定数定義(?)を使用して/etc/exim4/conf.d/main/00_local_settingsに名前を設定します(分割構成の場合)。 :

REMOTE_SMTP_HELO_DATA=$sender_address_domain

Exim4を再起動する前にupdate-exim4.confを実行することを忘れないでください。

/etc/exim4/exim4.conf.templateにprimary_hostname […]を設定しました

Davidが述べたように、これはおそらく最良のアイデアではありません。スプリット構成では、追加することでプライマリホスト名を設定できます

MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com

/etc/exim4/conf.d/main/00_local_settingsらしい モノリシックexim4構成ではPRIMARY_Host_NAMEになります。

必要な設定は primary_hostname と呼ばれます。

デバッグのために使用できます

tcpdump -A port 25

aSCIIでSMTPトラフィックを監視する。

0
brian-brazil