What you need...
- Mule ESB (I'm using Mule ESB Enterprise Version: 2.2.5 Build: 16813 along with Mule Management Console support, i.e. mmc-agent-2.2.5.jar) *
- A test Gmail account
Mule Configuration...
<?xml version="1.0"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:file="http://www.mulesource.org/schema/mule/file/2.2"
xmlns:smtp="http://www.mulesource.org/schema/mule/smtp/2.2"
xmlns:email="http://www.mulesource.org/schema/mule/email/2.2"
xsi:schemaLocation="http://www.mulesource.org/schema/mule/core/2.2
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:file="http://www.mulesource.org/schema/mule/file/2.2"
xmlns:smtp="http://www.mulesource.org/schema/mule/smtp/2.2"
xmlns:email="http://www.mulesource.org/schema/mule/email/2.2"
xsi:schemaLocation="http://www.mulesource.org/schema/mule/core/2.2
http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
http://www.mulesource.org/schema/mule/file/2.2
http://www.mulesource.org/schema/mule/file/2.2/mule-file.xsd
http://www.mulesource.org/schema/mule/smtp/2.2
http://www.mulesource.org/schema/mule/smtp/2.2/mule-smtp.xsd
http://www.mulesource.org/schema/mule/email/2.2
http://www.mulesource.org/schema/mule/email/2.2/mule-email.xsd">
<description>Test configuration to send SMTP email through Gmail.</description>
<!-- Configure some properties to work with GMail's SMTP -->
<smtp:gmail-connector name="emailConnector" />
<model name="processInboundFileModel">
<service name="processInboundFileService">
<inbound>
<file:inbound-endpoint
path="./remoteFS">
</file:inbound-endpoint>
</inbound>
<echo-component/>
<outbound>
<pass-through-router>
<smtp:outbound-endpoint
connector-ref="emailConnector"
host="smtp.gmail.com"
port="587"
user="<account name>%40gmail.com"
password="<password>"
to="<email addresses>"
from="<account name>@gmail.com"
subject="Test email message"/>
</pass-through-router>
</outbound>
</service>
</model>
</mule>
Cheers!
<description>Test configuration to send SMTP email through Gmail.</description>
<!-- Configure some properties to work with GMail's SMTP -->
<smtp:gmail-connector name="emailConnector" />
<model name="processInboundFileModel">
<service name="processInboundFileService">
<inbound>
<file:inbound-endpoint
path="./remoteFS">
</file:inbound-endpoint>
</inbound>
<echo-component/>
<outbound>
<pass-through-router>
<smtp:outbound-endpoint
connector-ref="emailConnector"
host="smtp.gmail.com"
port="587"
user="<account name>%40gmail.com"
password="<password>"
to="<email addresses>"
from="<account name>@gmail.com"
subject="Test email message"/>
</pass-through-router>
</outbound>
</service>
</model>
</mule>
As indicated, the Mule configuration is very straightforward. You can get most of the information you need from the Mule SMTP Transport documentation except for what Gmail port to use and most importantly the gmail-connector information. That tripped me up for a while until I came across a Mule JIRA issue where someone refer to the configuration in the bookstore example for sending email through Gmail. I still haven't found much information on this connector and what it's doing but it does work and you need to use in order to connect to Gmail.
One other thing that is documented however maybe overlooked is that you need to replace the "@" symbol in the "user" attribute with the URL escape code of "%40".
4 comments:
Hi Rod Biresch
Thanks for the Article.
I need your help on one of my requirement.
I have email_requests in a table. I am reading the table rows from jdbc endpoints and sending the email to the users.
Now I want to update the same row with satus lets say if email fails then status of the row as 'ERROR' and if the email goes through, then status as 'COMPLETED'.
How Can I do this. How can I handle erros for SMTP end points.
Thanks in advance
Please reply to umashankarak@gmail.com
Umashankar,
Unfortunately, I have not had much time working with Mule ESB since the blog post. I suggest that you start with looking at Error Handler example in examples/errorhandler. I'm not sure if the SMTP transport can deal with mail failures or not. Chances are you will have to manually check your inbox (or use something like the POP3 Transport) for failures and process them accordingly.
Hope this helps!
Cheers,
Rod
Thanks for this great step by step process - I would like to use it for any new staff or children to our school in future. We have just begun our Blogging journey this year and this will certainly be useful to get the new users started in future! Thanks for sharing it with us.
To getGmail Technical Support, Please visit the link.
Thanks & Regards
lacybrown
This is cool!
Post a Comment