1

许多周前推荐我发送电子邮件,ActiveMQ。所以我搜索有关此的信息,但我不完全了解它是如何工作的。有人能解释一下为什么我应该使用 ActiveMQ 发送电子邮件吗?

4

4 回答 4

14

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

于 2009-08-14T14:13:40.633 回答
4

我认为出现了沟通障碍。ActiveMQ是一个“消息”系统——这与电子邮件无关!消息系统(AMQ 建立在 AMQp 消息协议之上)是关于数据的可靠通信并解决以下问题:

  • 发布/订阅
  • 点对点
  • 保证交货
于 2009-08-14T14:03:22.657 回答
2

您可能应该看看 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 框架可用于执行此操作。

于 2009-08-14T14:12:55.733 回答
0

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

于 2009-08-14T16:58:37.380 回答