使用Java Mail API将电子邮件从一个地址服务器发送到另一个服务器

时间:2012-12-19 19:54:26

标签: java javamail

我有一个在线表单,允许用户通过电子邮件向公司发送投诉。为了测试它我使用gmail smtp作为我的主机。当发件人也是Gmail时,我没有问题收到指定电子邮件帐户的邮件,但我希望“发件人”不仅限于gmail帐户。看来smtp只适用于从同一台服务器发送电子邮件?

示例:如果from是abc@gmail.com并且公司电子邮件是company@gmail.com,我的表单效果很好。

但是如果为发件人输入了xyz@yahoo.com,则接收者company@gmail.com永远不会得到它。

非常感谢任何帮助。如果需要,我也可以提供我的代码。

3 个答案:

答案 0 :(得分:1)

使用SMTP时,您的问题是常见的安全限制。传出SMTP电子邮件只能包含属于发件人的“邮件来自”地址。如果您违反此规则,您的电子邮件可能会被视为垃圾邮件。

以下内容将允许您的收件人回复备用地址。

Properties properties = new Properties();
props.put("mail.smtp.from", "abc@gmail.com");
Session session = Session.getDefaultInstance(props, null);
MimeMessage m = new MimeMessage(session);
m.addFrom(InternetAddress.parse("xyz@yahoo.com"));
m.setReplyTo(InternetAddress.parse("xyz@yahoo.com")); 

另见

答案 1 :(得分:0)

那么你必须拥有其他电子邮件,并将其设置为使用gmail, 查看here了解详情。

答案 2 :(得分:0)

最好使用在服务器上拥有应用程序的用户的身份将消息发送到公司的邮件服务器,并将客户在在线表单中提供的信息作为您发送的消息中的数据包含在内。该消息看起来不像来自客户,但它真的不是来自客户,因为它不是使用客户的邮件服务器发送的。