受信サーバーがHELOチェックを行うと、私のシステムからのメールが拒否されます。システムが間違ったドメイン名を送信していると思います。 exim4を実行しています。 exim4とドメインに関する情報をグーグル検索すると、無関係な結果の悪夢のようなリストが生成されます。同様に、HELO拒否をグーグルで検索すると、SMTP認証をオンにする必要があるOutlookユーザーの群れが生じます。私の人生では、この単純な質問を理解することはできません。どのホスト名がeximから送信され、どのように変更するのですか?
残念ながら、私はeximがネットワーク経由で送信しているものを監視できないため、これを自分でデバッグする方法はありません。私は誰かがこの問題を抱えていて、ただ知っていることを願っています:)。
エラーがHELO/EHLOデータについて不平を言っていると仮定すると、smtpトランスポートでhelo_dataオプションを使用する必要があります。デフォルトは$ primary_hostnameです。
remote_smtp:
driver = smtp
helo_data = Host.example.com
詳細は マニュアル を参照してください。
そうでない場合は、拒否メッセージの例をいくつか含めるとよいでしょう。 3桁のコードとその後の文字列だけです。
コマンド
Sudo dpkg-reconfigure exim4-config
使用するプライマリホスト名の入力を求めるプロンプトが表示されます。
Debian(Lenny)では、/etc/hostname
にホスト名を設定していることがわかりましたが、これは再起動するまで認識されません。
$ hostname newhostname
すぐに設定します(ただし、再起動すると失われるため、2つ実行する必要があります)。
exim4はuname -n
と同じように報告するようで、テストするのに便利な方法であることがわかりました。
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
を実行することを忘れないでください。
Davidが述べたように、これはおそらく最良のアイデアではありません。スプリット構成では、追加することでプライマリホスト名を設定できます
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
/etc/exim4/conf.d/main/00_local_settings
。 らしい モノリシックexim4構成ではPRIMARY_Host_NAME
になります。