The JavaMail Bridge Extension Swiftlet connects both domains, JMS and eMail, and enables JMS clients to send and receive eMails including attachments with plain JMS. The Extension Swiftlet is installed once somewhere within the router network and is now at the disposal of every JMS client. Through this it is possible to send and receive eMails from JMS clients which are themselves within a network sector from which they have no mailserver access.
An outbound bridge is bound to an input queue or an input topic where it receives a JMS message, creates a JavaMail message from it, translates JMS headers into JavaMail headers, enriches the JavaMail message by optional default headers (e.g. a default "bcc"), and transforms the JMS message body into the JavaMail message body. The transformation is done by pluggable transformer classes. The Extension Swiftlet distribution contains 2 pre-built transformer classes, a TextMessageTransformer to send simple text messages and a MultipartTransformer to send complex eMails with any number of attachments. Finally, the resulting JavaMail message is sent to a configured mail server with the SMTP protocol.
It is possible to define an unlimited number of outbound bridges, bound to different queues/topics and external mail servers and thus to create a very complex outbound eMail integration.
An outbound bridge can be activated/deactived via the Scheduler Swiftlet by a schedulable job to send all eMails at once at a specific day time or in given intervals.
An inbound bridge is bound to a mail account on a particular mail server. It receives JavaMail messages either by the POP3 or by the IMAP protocol. To protect against denial-of-service attacks, an inbound bridge can be configured to receive only a limited number of messages per retrieve interval and/or reject messages which exceed a configured maximum size. For each received JavaMail message, a JMS message is created by a pluggable transformer class which transforms the JavaMail message body into the JMS message body, JavaMail headers are translated into JMS message properties, the JMS message is enriched by default properties and will be sent to a JMS destination which can be either a queue or a topic. The Extension Swiftlet distribution contains 2 pre-built transformer classes, a TextMessageTransformer to receive simple text messages and a MultipartTransformer to receive complex eMails with any number of attachments.
It is possible to define an unlimited number of inbound bridges, bound to different queues/topics and external mail servers and thus to create a very complex inbound eMail integration.
An inbound bridge can be activated/deactived via the Scheduler Swiftlet by a schedulable job to receive all eMails at once at a specific day time or in given intervals.