<flow name="EmailNotificationService">
<vm:inbound-endpoint path="emailNotification" exchange-pattern="one-way" />
<smtps:outbound-endpoint user="${user}" password="${password}" host="${host}" from="${from}"
subject="Your order has been placed!">
<custom-transformer class="org.mule.example.bookstore.transformers.OrderToEmailTransformer" />
<email:string-to-email-transformer />
</smtps:outbound-endpoint>
</flow>
Email Transport Reference
Configuration Examples
Here is a configuration snippet from the bookstore example. This flow is triggered when you send a string to vm://emailNotification
and send an order verification email to a specified address:
Here is a configuration snippet from the errorhandler example. This endpoint takes a ErrorMessageToExceptionBean
java object and converts it to an email to a specified address:
<smtp:outbound-endpoint user="${smtp.username}" password="${smtp.password}"
host="${smtp.host}" port="${smtp.port}"
to="${email.toAddress}" from="${email.fromAddress}"
subject="${email.subject}">
<transformer ref="ErrorMessageToExceptionBean" />
<transformer ref="ExceptionBeanToXML" />
<email:string-to-email-transformer/>
</smtp:outbound-endpoint>
You can find full working configuration examples in each transport reference page.
The full example code for the bookstore and errorhandler examples are included in the Mule ESB Community Edition.
Filters
Filters can be set on an endpoint to filter out any unwanted messages. The Email transport provides a couple of filters that can either be used directly or extended to implement custom filtering rules.
Filter | Description |
---|---|
org.mule.providers.email.filters.AbstractMailFilter |
A base filter implementation that must be extended by any other mail filter. |
org.mule.providers.email.filters.MailSubjectRegExFilter |
Applies a regular expression to a Mail Message subject. |
This is how you define the MailSubjectRegExFilter
in your Mule configuration:
<message-property-filter pattern="to=barney@mule.org"/>
The ' pattern ' attribute is a regular expression pattern. This is defined as java.util.regex.Pattern
.
Transformers
These are transformers specific to this transport. Note that these are added automatically to the Mule registry at start up. When doing automatic transformations these will be included when searching for the correct transformers.
Name | Description |
---|---|
email-to-string-transformer |
Converts an email message to string format. |
string-to-email-transformer |
Converts a string message to email format. |
object-to-mime-transformer |
Converts an object to MIME format. |
mime-to-bytes-transformer |
Converts a MIME message to a byte array. |
bytes-to-mime-transformer |
Converts a byte array message to MIME format. |
Here is how you define transformers in your Mule configuration file:
<email:bytes-to-mime-transformer encoding="" ignoreBadInput="" mimeType="" name="" returnClass="" xsi:type=""/>
<email:email-to-string-transformer encoding="" ignoreBadInput="" mimeType="" name="" returnClass="" xsi:type=""/>
<email:mime-to-bytes-transformer encoding="" ignoreBadInput="" mimeType="" name="" returnClass="" xsi:type=""/>
<email:object-to-mime-transformer encoding="" ignoreBadInput="" mimeType="" name="" returnClass=""
useInboundAttachments="true" useOutboundAttachments="true"/>
<email:string-to-email-transformer encoding="" ignoreBadInput="" mimeType="" name="" returnClass="" xsi:type=""/>
Each transformer supports all the common transformer attributes and properties:
Transformer
A reference to a transformer defined elsewhere.
Attributes of <transformer…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
ref |
string |
yes |
The name of the transformer to use. |
Child Elements of <transformer…>
Name | Cardinality | Description |
---|
The object-to-mime-transformer has the following attributes:
Attribute | Description | Default Value |
---|---|---|
useInboundAttachments |
Whether to transform inbound attachment in the input message into MIME parts. |
true |
useOutboundAttachments |
Whether to transform outbound attachment in the input message into MIME parts. |
true |
To use these transformers, make sure you include the 'email' namespace in your Mule configuration.