繁体   English   中英

为什么我应该使用ActiveMQ发送电子邮件?

[英]Why i should use ActiveMQ for send emails?

许多星期前推荐我发送电子邮件ActiveMQ。 因此,我搜索了有关此信息,但我不完全了解其工作原理。 有人可以向我解释为什么我应该使用ActiveMQ发送电子邮件吗?

@oxbow_lakes的答案可能适合您的情况,但是还有另一种可能性。 推荐该建议(使用ActiveMQ)的原因可能是希望发送电子邮件的客户端应用程序可以委派通过ActiveMQ向电子邮件服务应用程序发送电子邮件的任务。 我看到的好处是该调用将是异步的,因此即使要发送数百万封电子邮件,客户端应用程序也不会阻塞,因为这可以由后台的电子邮件服务应用程序处理。

我认为通讯出现故障。 ActiveMQ是一个“消息”系统-与电子邮件无关! 消息传递系统(AMQ基于AMQp消息传递协议构建)是关于数据的可靠通信并解决以下问题:

  • 发布/订阅
  • 点对点
  • 保证交货

您可能应该看看JavaMail。

http://java.sun.com/products/javamail/FAQ.html

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

public class SimpleMail {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "mymail.server.org");
      props.setProperty("mail.user", "emailuser");
      props.setProperty("mail.password", "");

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("mum@marhsall.com"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
    }
}

我想您可以使用AMQ来排队发送到SMTP端点的电子邮件。 Mule框架可用于执行此操作。

Active MQ与发送电子邮件无关。 Active MQ用于通过网络发送消息。 当您发送电子邮件时,您所需要的只是smtp主机服务器详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM