何週間も前に、メールの送信、ActiveMQ を勧めてくれました。だから私はこれに関する情報を検索しますが、これがどのように機能するかを完全には理解していません。メールの送信に ActiveMQ を使用する必要がある理由を説明してもらえますか?
4 に答える
@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 ホスト サーバーの詳細だけです。