2012-02-04 50 views
0

我正在使用spring郵件通過谷歌的smptp服務器發送電子郵件。我正在設置我的電子郵件模板「From」標題,但由於某種原因,當我確實收到郵件作爲發件人時,我得到了smtp帳戶的所有者。 (這恰好是我)。春季郵件MimeMessage有一個不正確的「發件人」集

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()); 

我忘了什麼嗎?我正在明確設置「發件人」標頭

回答

2

您正在設置與帳戶地址不同的from地址。 Google有安全措施可以避免濫用,如果您只需通過Google的SMTP服務器發送任意from地址,這可能是致命的。您需要鏈接並驗證您的其他帳戶與您想要發送郵件的帳戶。請參閱here。您的原始電子郵件地址仍然可以在標題中看到,並且可以被收件人看到。

但是,爲什麼你不使用其他帳戶的憑據(和郵件服務器,如果它不是谷歌帳戶)?

+0

首先感謝您的答案,這解釋了我的問題。你是什​​麼意思其他帳戶?我正在測試使用我的谷歌帳戶連接到smtp服務器,但實際的電子郵件仍然發送給我。這是一個密碼恢復機制,我是用戶請求更改密碼,因此看起來好像我正在向我發送電子郵件:) – pmanolov 2012-02-04 13:34:00

+0

從Google的角度來看,任何不是發件人地址的地址都是僞造的。除非您使用身份驗證,否則他們會阻止它。 – tripleee 2012-02-04 14:19:56

+0

@pmanolov你就不能隨心所欲的使用'from'地址,只有的那些鏈接到您的帳戶,即使這樣的郵件作爲'發自:代表弗雷德@ googlemaildomainname.mock'的[email protected]。對於「其他賬戶」,我指的是您想要設置的電子郵件地址的帳戶('忘記了PassowrdMailTemplate.getFrom()')。你需要控制那個。 「Raw」SMTP不會檢查您在From頭中輸入的內容;谷歌。不檢查任何內容的SMTP服務器很快可能被列入垃圾郵件服務器黑名單。 – 2012-02-04 14:40:07

相關問題