如何将失败的javax.mail.Message自定义对象放入jms队列(使用Activemq)



我正在创建使用我的Outlook帐户发送邮件的实用程序,为此,我正在创建javax.mail.message的对象并发送它,如果由于SendingFailedException而消息发送失败,我想将这些消息添加到jms队列中,另一端侦听器将每隔10分钟运行一次,以从队列中使用这些消息并尝试重新发送这些消息。

我已经浏览了一些与之相关的堆栈溢出主题,他们指示将消息更改为 xml 或 JSON 格式,我只是想知道如何处理它,如果这是实现它的方法。

提前致谢

使用 MimeMessage.writeTo 方法,可以将消息转换为字节流。 将其收集在 ByteArrayOutputStream 中,然后将字节包含在 JMS 消息中。 在另一端,您可以使用采用输入流的 MimeMessage 构造函数重新构造消息。

例如:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
msg.writeTo(bos);
byte[] data = bos.toByteArray();
// put the data in a JMS message
// in the receiver, extract the byte array from the message
byte[] data = ...
MimeMessage msg = new MimeMessage(session, data);

抱歉,我无法帮助您处理JMS部分。

最新更新