2009-10-12 83 views
6

爲這個應用程序我正在追蹤這個例子:JavaMail API來說的Gmail,驗證和setFrom

http://pipoltek.blogspot.com/2008/02/sending-mail-using-gmail-smtp-server.html

我可以發送電子郵件,它看起來不錯.....但我想修改發件人電子郵件使用此:

MimeMessage msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress("[email protected]")); 

[email protected]是假的電子郵件,不是我:)

當T使用setFrom,我recive從這封電子郵件的電子郵件,我用進行身份驗證。是身份驗證的原因,它禁用setFrom方法?

我需要更改「發件人」電子郵件,因爲我希望收件人向我發送重播到其他電子郵件地址。

回答

7

Google的SMTP服務器正在阻止使用除了屬於已通過身份驗證的帳戶的地址以外的其他地址。這是一種防止被稱爲「欺騙」的安全措施。也許你可以嘗試設置回覆到另一個值,看看谷歌是否會允許。

+0

謝謝......我會試着回覆。 – cupakob 2009-10-12 21:25:22

+0

適用於雅虎,但不適用於谷歌。它似乎是谷歌的一個bug /功能(http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2008-05/msg02294.html)。 – cupakob 2009-10-12 21:34:23

+0

@cupakob:如果Google不允許回覆,那麼使用Google的SMTP服務器發送電子郵件可能不太合適。運行自己的SMTP服務器作爲出站電子郵件不是一種選擇嗎?也許QMail或Postfix? – Asaph 2009-10-12 21:54:11