2009-10-12 82 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