電子メールの送信に 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();
}
}
私はあなたのSMTPエンドポイントに送信する電子メールメッセージをキューイングにAMQを使用することができると思います。ミュールフレームワークは、これを行うために使用することができます。
アクティブMQは、電子メールを送信することには何の関係もありません。 ActiveMQのは、ネットワークを介してメッセージを送信するために使用されます。あなたは電子メールを送信する一方で、あなたが必要とするすべてのSMTPホストサーバーの詳細である。