Почему я должен использовать ActiveMQ для отправки электронных писем?
Вопрос
много недель назад порекомендовал мне для отправки электронных писем ActiveMQ.Поэтому я ищу информацию об этом, но я не совсем понимаю, как это работает.Может ли кто- нибудь объяснить мне, почему я должен использовать ActiveMQ для отправки электронных писем?
Решение
Я думаю, что произошел сбой в общении. ActiveMQ
является "обмен сообщениями" система - это не имеет никакого отношения к электронной почте!Система обмена сообщениями (AMQ построена на протоколе обмена сообщениями AMQp) - это примерно надежная передача данных и решает такие вопросы, как:
- Опубликовать / подписаться
- От точки к точке
- Гарантированная доставка
Другие советы
Ответ @oxbow_lakes, возможно, правильный для вашей ситуации, но есть и другая возможность.Возможно, причина этой рекомендации (использовать ActiveMQ) заключалась в том, что клиентское приложение, которое хочет отправить электронное письмо, может делегировать задачу отправки электронного письма приложению службы электронной почты через ActiveMQ.Преимущество, которое я вижу, заключается в том, что вызов будет асинхронным, поэтому клиентское приложение не будет блокировать, даже если нужно отправить миллионы электронных писем, поскольку об этом может позаботиться приложение службы электронной почты в фоновом режиме.
Вероятно, вам стоит взглянуть на 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.
Активный MQ не имеет никакого отношения к отправке электронных писем.Активный MQ используется для отправки сообщений по сети.В то время как для отправки электронных писем все, что вам нужно, - это данные хост-сервера smtp.