我在smtp设置了邮件服务器mail.example.com
。尝试发送电子邮件,邮件服务器正确发送邮件。
但如果电子邮件反弹,我希望他们在另一个电子邮件地址阅读,这就是一个Gmail地址。所以我已经尝试过这样做了
SMTPMessage sMTPMessage = new SMTPMessage(mailSession);
sMTPMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
sMTPMessage.setFrom(new InternetAddress(from));
sMTPMessage.setSubject(subject);
sMTPMessage.setContent(body, contentType);
sMTPMessage.setEnvelopeFrom(bounceAddr);
SMTPTransport smtpTrans = new SMTPTransport(mailSession, new URLName("smtp", smtpServer, port, null, userid, password));
smtpTrans.connect();
smtpTrans.sendMessage(sMTPMessage, sMTPMessage.getAllRecipients());
System.out.println("transport "+smtpTrans.getReportSuccess());
smtpTrans.close();
但它没有奏效。所以我没有收到反弹电子邮件信息。此外,我尝试设置mail.smtp.from
属性也没有用。
我也看到了这个
props.put("smtp.mail.from", bounceAddr);
但来自电子邮件地址不在邮件服务器上,而是在我的Gmail地址上。那么来自地址域有什么问题吗?
答案 0 :(得分:0)
如果您正在使用属性,请确保您的属性名称中没有拼写错误,如上所述。
您可以通过打开JavaMail session debugging并在调试输出中的SMTP协议中查找MAIL命令来确保JavaMail正在使用您指定的信封发件人地址。
但真正的问题可能是:
通过检查邮件服务器的配置和行为,可以解决其中一些问题。但最终,当您发送到无效地址时,您根本不能依赖于始终收到错误消息。
您可以在JavaMail FAQ。
中找到更多信息