许多周前推荐我发送电子邮件,ActiveMQ。所以我搜索有关此的信息,但我不完全了解它是如何工作的。有人能解释一下为什么我应该使用 ActiveMQ 发送电子邮件吗?
问问题
4314 次
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 回答