如何使用Javamail获取SMTP响应

时间:2017-10-05 14:57:44

标签: java amazon-web-services email smtp javamail

我使用Javamail连接到AWS电子邮件服务;我已经测试过我可以使用此代码接收电子邮件,但我还希望获得有关已发送电子邮件的数据的响应,例如AWS用于唯一标识邮件的消息ID。

我使用MimeMessage创建了一封电子邮件,我在try catch块中发送了这段代码:

transport.sendMessage(message, message.getAllRecipients)

此代码只会向AWS服务器发送一封电子邮件,但我无法获取任何元数据。有没有办法监听响应以查看消息是否成功,以便我可以检索消息ID?

2 个答案:

答案 0 :(得分:0)

如果sendMessage方法返回,则服务器接受该消息。但请注意that doesn't necessarily mean it will be delivered to the recipient。但此时您可以使用getMessageID方法检索邮件ID。

如果send方法抛出异常,服务器由于某种原因拒绝接受该消息,并且不会被发送。

答案 1 :(得分:0)

为您的java邮件属性添加属性mail.smtp.reportsuccessmail.smtp.sendpartial,如果发送电子邮件成功,您将获得SMTPAddressSucceededExceptionSMTPAddressFailedException失败。

javamail doc