2011-01-11 19 views
2

私のSMTP/postfixの知識の限界に達しました。メールを送信した後のメールアドレスの変更(Gmail後継リレー)

私はjavamail 1.4を使用してメールを送信しています。 javamailライブラリはローカルのpostfixプロセスに接続しています。 postfixプロセスは、Gmailを介してメールを中継するように設定されています。

relayhost = smtp.gmail.com:587 

私はjavamailライブラリを使用して、送信元アドレスを設定しています。しかし、メールが受信トレイに届くと、ユーザーがGmailサーバーにログインしていることになります。

たとえば、私のコードでは、[email protected]に設定しています。 postfixはGmail経由でメールを中継するように設定されており、user1とパスワードを使ってsmtpサーバにログインします。メールは自分の受信トレイで[email protected]のようになります(Gmailの受信トレイから「オリジナル」を表示すると[email protected]と表示されません)。

私は、javamailの上にSpring 3.0のライブラリ(MimeMessageHelper)を使用していることに言及する価値があります。

+0

Java/Springコードがまったくない同じ電子メールを手動で送信しようとします。コマンドラインで「telnet smtp.local.network 110」などを試してください。同じ問題が発生した場合は、SMTPインフラストラクチャに問題があることを意味します。それ以外の場合は、Javaで電子メールを送信する方法を調べることをお勧めします。 –

答えて

9

Googleは、SMTPセッションの認証済みユーザーと一致するようにメッセージのヘッダーを書き換えています。 You can register other email addresses with your GMail account(「カスタム送信元アドレス」)。この場合、他のアドレスはFromヘッダーに受け入れられます(ただし、GMailは認証済みユーザーをSenderヘッダーに追加します)。 If you choose to use Google's SMTP server, there appears to be no way around this.

+0

これは、送信許可のないアドレスからのメール送信を防止するためです。 –

+0

これは私にとって理にかなっています。答えはdkarpです。私は現在、ソリューションをテストする段階にあります。 –

+0

そして参考のために、このソリューションは機能しました。 –