2014-02-07 59 views
3

方案1:为什么JMS通过Java邮件发送邮件

  1. 设置JMS队列在服务器
  2. Java代码来发送消息给生产者 创建JMS生产者,其在被调用时,应接收电子邮件数据(subject,body,to,cc等)并将其发布到步骤1中的队列设置中
  3. 创建一个JMS使用者,它订阅步骤1中创建的队列,其onMessage应调用JavaMail API发送电子邮件。

方案2:

  • 直接调用API的JavaMail发送电子邮件。

我知道如何使用和什么样的JMS和Java Mail都doing.Thing就是为什么我们从方案二去情景1发送mails.Initially我们做了我们使用情景1情景2.Now 。从大应用程序的不同部分发送邮件,所以我们使用JMS队列,将有消费者队列从那里发送邮件。请帮助我理解。

+0

不,你在问为什么这个由你所属的一群人建造的系统是如此工作的。所以问他们,他们知道为什么比网上任何一群随机的陌生人都要好。 – Gimby

回答

11

你会使用这个机制在大型应用程序有2个原因:

1)你不想你的客户不得不等待要发送邮件。

2)如果您出于任何原因失去与邮件服务器的连接,则不想丢失邮件。

5

如果您的本地计算机附近没有可靠的MTA,但您需要确保您的邮件将被发送,您可以这样做。例如,如果网络中断,但您依靠Java邮件发送邮件而没有附加逻辑,则邮件根本不会发送。

使用JMS,您可以在真正的MTA再次可用时重新安排传输的邮件。

0

除了:

  1. 与邮件提供商(SMTP UND POP3)的谈话 异步,靠近JMS/MDB API。那么为什么我应该使用不同于JMS的API?
  2. 您可以在一个事务中保留邮件处理,以及一些数据库更改其他活动。我记得太多的Spring .. sic'项目,其中的客户需要进行原子操作,其中包括一个数据库中的状态变化;-)
  3. 图像,您发送的消息变得更加强制,您必须连接到X400服务。简单地考虑一下代码的轻微变化(以及RA的变化),你会发现符合正确的设计决定。