Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Spring作为电子邮件存储_Java_Email - Fatal编程技术网

Java 如何使用Spring作为电子邮件存储

Java 如何使用Spring作为电子邮件存储,java,email,Java,Email,请告诉我如何使用spring作为临时电子邮件存储?基本上,如果电子邮件无法连接到电子邮件服务器(如网络错误),我需要将其临时存储在内存中。然后应用程序应尝试重新连接到邮件服务器。一旦连接,它应在内存中发送电子邮件 这不是一个真正的春季问题。您需要的是一种邮件发送机制,可以在失败时对发送进行排队,并重试。当然,您可以创建一个具有这些功能的bean,并通过Spring连接它;我想,在某些情况下,这会非常有用 这不是一个真正的春季问题。您需要的是一种邮件发送机制,可以在失败时对发送进行排队,并重试。当

请告诉我如何使用spring作为临时电子邮件存储?基本上,如果电子邮件无法连接到电子邮件服务器(如网络错误),我需要将其临时存储在内存中。然后应用程序应尝试重新连接到邮件服务器。一旦连接,它应在内存中发送电子邮件

这不是一个真正的春季问题。您需要的是一种邮件发送机制,可以在失败时对发送进行排队,并重试。当然,您可以创建一个具有这些功能的bean,并通过Spring连接它;我想,在某些情况下,这会非常有用

这不是一个真正的春季问题。您需要的是一种邮件发送机制,可以在失败时对发送进行排队,并重试。当然,您可以创建一个具有这些功能的bean,并通过Spring连接它;我想,在某些情况下,这会非常有用

Spring并没有针对这个用例的解决方案

有两种选择:

  • 在本地主机上获取SMTP服务器设置,以便它将消息中继到中心实例。这将删除应用程序和邮件服务器之间的网络连接,因此不接触邮件服务器的可能性应该很小
  • 将消息存储在数据库中,这并不理想,因为如果存在阻止访问邮件服务器的网络问题,则很可能存在影响数据库访问的网络问题。此外,您还必须创建某种重试过程,以便每x分钟重新发送一次消息
  • 将消息发布到本地持久JMS队列,然后让消息驱动bean(或spring消息容器)删除消息并将其发布到邮件服务器
  • 根据我个人的经验,选择1。我们通常让我接近我所需要的服务水平,但你必须评估你自己的需求


    实际上,我已经看到在生产系统中使用远程JMS代理实现了选项3。重要的特性是JMS代理是本地的,最好是进程内的,这样就不会有网络漏洞影响连接。

    Spring实际上没有解决这个用例的方案

    有两种选择:

  • 在本地主机上获取SMTP服务器设置,以便它将消息中继到中心实例。这将删除应用程序和邮件服务器之间的网络连接,因此不接触邮件服务器的可能性应该很小
  • 将消息存储在数据库中,这并不理想,因为如果存在阻止访问邮件服务器的网络问题,则很可能存在影响数据库访问的网络问题。此外,您还必须创建某种重试过程,以便每x分钟重新发送一次消息
  • 将消息发布到本地持久JMS队列,然后让消息驱动bean(或spring消息容器)删除消息并将其发布到邮件服务器
  • 根据我个人的经验,选择1。我们通常让我接近我所需要的服务水平,但你必须评估你自己的需求


    实际上,我已经看到在生产系统中使用远程JMS代理实现了选项3。重要的功能是JMS代理是本地的,最好是进程中的,这样网络故障影响连接的可能性为零。

    感谢Gareth和Joseph的快速响应。我认为按照您的建议将消息持久保存到DB或队列中是有用的。但我认为可能有一种方法可以做到这一点,如中所述我快速浏览了那篇文章,但除了如何使用API发送邮件之外,我看不到任何东西……关于处理您的用例的内容……也许我遗漏了一些东西,感谢您Gareth和Joseph的快速响应。我认为按照您的建议将消息持久保存到DB或队列中会很有用。但我认为可能有办法做到这一点如中所述,我只是快速浏览了那篇文章,但除了如何使用API发送邮件之外,我看不到任何东西……关于处理您的用例,我一无所知……也许我遗漏了一些东西