web-dev-qa-db-ja.com

postfixメッセージIDを変更することは可能ですか?

PostfixのメッセージIDを変更することは可能ですか? Javaアプリケーションを介してメールを送信すると、次のメッセージIDが表示されます。

message-id=<143303043.111334605578921.JavaMail.applicationanme@hostname>

だから私はメッセージIDがこのように見えることを望みます:

message-id=<[email protected]>

Linuxプログラムmailでメールを送信した場合、理解できることは機能します。

message-id=<[email protected]>

ホスト名はpostfix-confですでに設定していますが、Javaアプリケーションでメールを送信すると機能しません。リレーホストを使用してメールを送信します。mail-idに@domain.tldを付けずに送信されたメッセージは、スパムメールとして検出されます。

どうすればこれを修正できるかわかりますか?

5
Marcus

postfixを使用してドメインを反映するメッセージIDを挿入する方法について誰もあなたに解決策を与えていないので、同じ問題があったので、私はpostfixでそれを行うことができた方法を共有することを考えました:

1)/etc/postfix/main.cfの最後に追加します

header_checks = regexp:/etc/postfix/header_checks

2)header_checksに置換文字列を挿入します

/Message-Id:\s+<(.*?)@hostname>/ REPLACE Message-Id: <[email protected]>

3)ポストマップを実行する

postmap /etc/postfix/header_checks

4)postfixを再起動します

service postfix restart
9
thezilla

PostfixでメッセージIDを書き換えようとする代わりに、最初からjavamailに正しいMessageIDを生成させてはどうですか。 MimeMessageをサブクラス化し、新しいupdateMessageIDメソッドを提供することにより、javamailがMessageIDを生成する方法を変更できます

8
stew
  1. なぜこれをしたいのですか? @BenPilbrowが指摘したように、message-idは無意味の隣にあります。これを使用するのは、ほとんどがスレッド化電子メールクライアントだけです。

  2. @stewが指摘したように、最初は適切なメッセージIDを含む電子メールを送信するだけです。

  3. 最後に、Postfixが$ myhostname の値を変更することです。これは、PostfixがメッセージIDを作成するときに@記号の後に使用するためです。

5
Flimzy

関連するJavaプロパティはmail.Host。アプリケーションによっては、次のように設定するプロパティファイルがある場合があります。

mail.Host=your.tld

または、コマンドラインの-Dオプションを使用します。

Java -Dmail.Host=your.tld ...

他の人が指摘したように、message-idのドメイン部分は、スパムの場合を除いて、ほぼ100%無関係です。 mailプログラムを介して送信されたメッセージはすぐに配信されましたが、メッセージIDからTLDを省略したjavamailを介して送信されたメッセージは遅延配信のみが発生するという同様の問題がありました。この問題は、完全なTLDをメッセージIDに追加することで修正されました。

1