2012-02-04 8 views
0

私は春のメールを使ってGoogleのsmptpサーバー経由でメールを送信しています。私は自分のメールテンプレートを "From"ヘッダーに設定していますが、何らかの理由でメールを送信者として受け取ったときにsmtpアカウントの所有者を取得します。 (私はもう一度私に起こる)。春メールMimeMessageの「From」設定が正しくありません

MimeMessage message = mailSender.createMimeMessage(); 
MimeMessageHelper helper = new MimeMessageHelper(message); 
helper.setText(forgottenPassowrdMailTemplate.getText() 
        .replace("%firstName%", token.getUser().getFirstName()) 
        .replace("%lastName%", token.getUser().getLastName()) 
        .replace("%link%", url + token.getToken()), true); 
     helper.setTo(token.getUser().getEmail()); 
     helper.setFrom(forgottenPassowrdMailTemplate.getFrom()); 
     helper.setSubject(forgottenPassowrdMailTemplate.getSubject()); 

私は何かを忘れていますか? 「From」ヘッダーを明示的に設定しています

答えて

2

fromのアドレスは、アカウントのアドレスとは異なります。 GoogleのSMTPサーバー経由で任意のfromアドレスを送信するだけで致命的になる可能性がある、虐待を避けるためのGoogleのセキュリティ対策があります。メールを送信するアカウントで他のアカウントをリンクして確認する必要があります。 hereを参照してください。元のメールアドレスは引き続きヘッダーで利用でき、受信者に表示されます。

しかし、他のアカウントのアカウント情報(Googleアカウントでない場合はメールサーバー)を使用してみませんか?

+0

まずはお返事いただきありがとうございます。それは私の問題を説明しています。他のアカウントはどういう意味ですか?私はsmtpサーバーに接続するために私のGoogleアカウントを使用してテストしていますが、実際のメールはまだ私に送信されます。これはパスワード回復の仕組みであり、私はパスワード変更を要求しているユーザーなので、メールを私に送信しているかのように見えます:) – pmanolov

+0

Googleの観点からは、送信者アドレスではないアドレスはすべて偽造です。あなたが認証を使用しない限り、彼らはそれを防ぐでしょう。 – tripleee

+0

@pmanolovあなたは自分のアカウントにリンクされているものだけを使用することはできません。また、それらのメールは 'fred @ googlemaildomainname.mock'の代わりに' from:[email protected] 'として送信されます。 「他のアカウント」では、設定したいメールアドレスのアカウントを指定しました( 'forgottenPassowrdMailTemplate.getFrom()')。あなたはそれを支配する必要があります。 "Raw" SMTPはfromヘッダーに入力した内容をチェックしません。 Googleはそうです。何もチェックしないSMTPサーバーは、スパムサーバーとして非常に高速にブラックリストに登録される可能性があります。 –