[mule-user] Sending mail through SMTP in mule

155 views
Skip to first unread message

Ryan J. R

unread,
Oct 23, 2009, 7:10:11 AM10/23/09
to us...@mule.codehaus.org

********************************************************************************
Message : Failed to route event via endpoint:
DefaultOutboundEndpoint{endpointUri=smtp://172.22.218.149:25,
connector=SmtpConnector{this=105691e, started=true, initialised=true,
name='emailConnector', disposed=false,
numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=true,
supportedProtocols=[smtp], serviceOverrides=null},
transformer=[SendMailRequestDTOToEmailMessage{this=11f23e5,
name='SendMailRequestDTOToObject', ignoreBadInput=false, returnClass=class
java.lang.Object, sourceTypes=[]}, ObjectToMimeMessage{this=16dc861,
name='ObjectToMessage', ignoreBadInput=false, returnClass=class
javax.mail.Message, sourceTypes=[class java.lang.String]}],
name='endpoint.smtp.22.218.149.25', properties={},
transactionConfig=Transaction{factory=org.mule.transport.jdbc.JdbcTransactionFactory@383118,
action=ALWAYS_JOIN, timeout=0}, filter=null, deleteUnacceptedMessages=false,
securityFilter=null, synchronous=true, initialState=started,
responseTimeout=10000, endpointEncoding=UTF-8}. Message payload is of type:
MimeMessage
Type : org.mule.api.transport.DispatchException
Code : MULE_ERROR-42999
JavaDoc :
http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/transport/DispatchException.html
Payload : javax.mail.internet.MimeMessage@1b994de
********************************************************************************

i get the follwoing exception when trying to send mail through SMTP. If i
run the java application it works fine and the mail is sent but throgh
mule it does not work for me.


the code snippet

<model>
<service name="emailHandler_1.0">
<inbound>
<jdbc:inbound-endpoint name="emailJdbc"
connector-ref="jdbcConnectorEmail" queryKey="selectEmailMessage">
<jdbc:transaction action="ALWAYS_BEGIN" />
<transformers>
<custom-transformer
class="transformer.DataToSendMailRequestDTO">
</custom-transformer>
</transformers>
</jdbc:inbound-endpoint>
</inbound>
<outbound>
<pass-through-router>
<smtp:outbound-endpoint host="<some ip>" port="25"
connector-ref="emailConnector" synchronous="true">
<jdbc:transaction action="ALWAYS_JOIN" />
<transformers>
<custom-transformer
class="transformer.SendMailRequestDTOToEmailMessage">
</custom-transformer>
<email:object-to-mime-transformer />
</transformers>
</smtp:outbound-endpoint>
</pass-through-router>
</outbound>
</service>
</model>

Please help me out with this.
--
View this message in context: http://www.nabble.com/Sending-mail-through-SMTP-in-mule-tp26024427p26024427.html
Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


Andrew Perepelytsya

unread,
Oct 23, 2009, 10:48:03 AM10/23/09
to us...@mule.codehaus.org
Please post the root cause of exception, don't cut it off.

Andrew

Antoine Borg

unread,
Oct 26, 2009, 3:21:59 AM10/26/09
to us...@mule.codehaus.org
As Andrew says, the exception is what we're interested in so pls do post
that.

While you're at it, I'm curious to see why you configured a JDBC
transaction on an SMTP endpoint. Could you explain that pls?

HTH

A

Antoine Borg, Director of Services | Tel: +32 28 504 696
ricston Ltd., BP 2, 1180 Uccle, Brussels, BELGIUM

See our full schedule of Mule and Android courses:
http://www.ricston.com/courses/schedules/

email: _antoin...@ricston.com <mailto:antoin...@ricston.com> |
blog: blog.ricston.com <http://blog.ricston.com> | web: ricston.com
<http://www.ricston.com/>

Ryan J. R

unread,
Oct 26, 2009, 4:58:14 AM10/26/09
to us...@mule.codehaus.org


Andrew Perepelytsya wrote:
>
> Please post the root cause of exception, don't cut it off.
>
> Andrew
>
>


the exception is :


2009-10-26 14:25:28,629 [emailHandler_1.0.2] INFO
[mule.transformer.SendMailRequestDTOToEmailMessage] -
SendMailRequestDTOToEmailMessage: has come from
endpoint=smtp://172.22.218.149:25
2009-10-26 14:25:28,676 [emailHandler_1.0.2] INFO
[mule.transformer.SendMailRequestDTOToEmailMessage] - muleMessage returned
from RequestToEmailTransformer
org.mule.transport.DefaultMessageAdapter/org.mule.transport.DefaultMessageAdapter@1bf7b23{id=4e9033a9-c20d-11de-9246-ad1213bcd7b1,
payload=java.lang.String,
properties=Properties{invocation:{toAddresses=ryan_ro...@mindtree.com,
fromAddress=ryan_ro...@mindtree.com, subject=hi}, inbound:{},
outbound:{MULE_SESSION=SUQ9NGU5NzVmOWEtYzIwZC0xMWRlLTkyNDYtYWQxMjEzYmNkN2Ix,
MULE_CORRELATION_ID=4e9033a9-c20d-11de-9246-ad1213bcd7b1,
sentDate=java.util.GregorianCalendar[time=1256547328676,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2009,MONTH=9,WEEK_OF_YEAR=44,WEEK_OF_MONTH=5,DAY_OF_MONTH=26,DAY_OF_YEAR=299,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=25,SECOND=28,MILLISECOND=676,ZONE_OFFSET=19800000,DST_OFFSET=0],
MULE_ENDPOINT=smtp://172.22.218.149:25, MULE_ENCODING=UTF-8,
fromAddress=ryan_ro...@mindtree.com,
toAddresses=ryan_ro...@mindtree.com, subject=Test mail,
MULE_ORIGINATING_ENDPOINT=selectEmailMessage}, session:{}, },
correlationId=4e9033a9-c20d-11de-9246-ad1213bcd7b1, correlationGroup=-1,
correlationSeq=-1, encoding=UTF-8, exceptionPayload=null}
2009-10-26 14:26:33,579 [emailHandler_1.0.2] ERROR
[org.mule.DefaultExceptionStrategy] - Caught exception in Exception
Strategy: IOException while sending message
javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:625)
at
org.mule.transport.email.SmtpMessageDispatcher.sendMailMessage(SmtpMessageDispatcher.java:124)
at
org.mule.transport.email.SmtpMessageDispatcher.doDispatch(SmtpMessageDispatcher.java:95)
at
org.mule.transport.email.SmtpMessageDispatcher.doSend(SmtpMessageDispatcher.java:101)
at
org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:163)
at org.mule.transport.AbstractConnector.send(AbstractConnector.java:2016)
at
org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:76)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213)
at
org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152)
at
org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
at
org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159)
at
org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutboundRouter.java:79)
at
org.mule.routing.outbound.OutboundPassThroughRouter.route(OutboundPassThroughRouter.java:69)
at
org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:88)
at
org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45)
at
org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:93)
at
org.mule.service.AbstractService.dispatchToOutboundRouter(AbstractService.java:867)
at
org.mule.model.seda.SedaService.dispatchToOutboundRouter(SedaService.java:552)
at
org.mule.model.seda.SedaService$ComponentStageWorker.run(SedaService.java:575)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:520)
at java.net.Socket.connect(Socket.java:470)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
at sun.net.www.http.HttpClient.New(HttpClient.java:304)
at sun.net.www.http.HttpClient.New(HttpClient.java:321)
at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:813)
at
sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:765)
at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:690)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:934)
at java.net.URL.openStream(URL.java:1007)
at javax.activation.URLDataSource.getInputStream(URLDataSource.java:107)
at javax.activation.DataHandler.writeTo(DataHandler.java:304)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845)
at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361)
at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85)
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:883)
at javax.activation.DataHandler.writeTo(DataHandler.java:316)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:585)
... 23 more
2009-10-26 14:26:33,688 [emailHandler_1.0.2] ERROR
[mule.service.DefaultServiceExceptionStrategy] -

********************************************************************************
Message : Failed to route event via endpoint:
DefaultOutboundEndpoint{endpointUri=smtp://172.22.218.149:25,

connector=SmtpConnector{this=17e845a, started=true, initialised=true,


name='emailConnector', disposed=false,
numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=true,
supportedProtocols=[smtp], serviceOverrides=null},

transformer=[SendMailRequestDTOToEmailMessage{this=12368df,


name='SendMailRequestDTOToObject', ignoreBadInput=false, returnClass=class

java.lang.Object, sourceTypes=[]}, ObjectToMimeMessage{this=1ba0f36,


name='ObjectToMessage', ignoreBadInput=false, returnClass=class
javax.mail.Message, sourceTypes=[class java.lang.String]}],
name='endpoint.smtp.22.218.149.25',

properties={fromAddress=ryan_ro...@mindtree.com,
toAddresses=ryan_ro...@mindtree.com, subject=hi},
transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},


filter=null, deleteUnacceptedMessages=false, securityFilter=null,
synchronous=true, initialState=started, responseTimeout=10000,
endpointEncoding=UTF-8}. Message payload is of type: MimeMessage
Type : org.mule.api.transport.DispatchException
Code : MULE_ERROR-42999
JavaDoc :
http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/transport/DispatchException.html

Payload : javax.mail.internet.MimeMessage@1f7708
********************************************************************************
Exception stack is:
1. Connection timed out: connect (java.net.ConnectException)
java.net.PlainSocketImpl:-2
(http://java.sun.com/j2se/1.5.0/docs/api/java/net/ConnectException.html)
2. IOException while sending message (javax.mail.MessagingException)
com.sun.mail.smtp.SMTPTransport:625
(http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/mail/MessagingException.html)
3. Failed to route event via endpoint:
DefaultOutboundEndpoint{endpointUri=smtp://172.22.218.149:25,
connector=SmtpConnector{this=17e845a, started=true, initialised=true,


name='emailConnector', disposed=false,
numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=true,
supportedProtocols=[smtp], serviceOverrides=null},

transformer=[SendMailRequestDTOToEmailMessage{this=12368df,


name='SendMailRequestDTOToObject', ignoreBadInput=false, returnClass=class

java.lang.Object, sourceTypes=[]}, ObjectToMimeMessage{this=1ba0f36,


name='ObjectToMessage', ignoreBadInput=false, returnClass=class
javax.mail.Message, sourceTypes=[class java.lang.String]}],
name='endpoint.smtp.22.218.149.25',

properties={fromAddress=ryan_ro...@mindtree.com,
toAddresses=ryan_ro...@mindtree.com, subject=hi},
transactionConfig=Transaction{factory=null, action=NEVER, timeout=0},


filter=null, deleteUnacceptedMessages=false, securityFilter=null,
synchronous=true, initialState=started, responseTimeout=10000,
endpointEncoding=UTF-8}. Message payload is of type: MimeMessage

(org.mule.api.transport.DispatchException)
org.mule.transport.AbstractMessageDispatcher:185
(http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/transport/DispatchException.html)
********************************************************************************
--
View this message in context: http://www.nabble.com/Sending-mail-through-SMTP-in-mule-tp26024427p26056244.html

Andrew Perepelytsya

unread,
Oct 26, 2009, 9:44:13 AM10/26/09
to us...@mule.codehaus.org


On Mon, Oct 26, 2009 at 4:58 AM, Ryan J. R <ryan_ro...@mindtree.com> wrote:
1. Connection timed out: connect (java.net.ConnectException)
 java.net.PlainSocketImpl:-2

Check if you have any outbound firewalls configured and that service is running at the expected port, the error is in the network layer, not Mule.

HTH,
Andrew

Ryan J. R

unread,
Oct 26, 2009, 9:48:03 AM10/26/09
to us...@mule.codehaus.org

Yes we have a firewall configured. But the problem is that if i run the Java
code it works fine. But if we run from the mule it gives us the error.

--
View this message in context: http://www.nabble.com/Sending-mail-through-SMTP-in-mule-tp26024427p26060061.html

David Dossot

unread,
Oct 26, 2009, 10:55:32 AM10/26/09
to us...@mule.codehaus.org
Why is it timing out when processing the attachments of the email you try to send? The mail client acts as if it's pulling one part of the mime message from an HTTP source, a source it can't reach?

Ryan Rodrigues

unread,
Nov 26, 2009, 9:13:31 AM11/26/09
to us...@mule.codehaus.org
Hi,
It is due to the firewall in our company.
I have one more problem with this, i need to invoke the retry policy in case of this error. I tried using the adaptive retry policy but it does not work, i mean it does not call the retry policy i have specified. For more understanding am pasting the code.


Code :


<spring:bean id="foreverRetryPolicyTemplateForSMTP"
class=" aero.sita.bagmanager.common.retryPolicies.RetryForeverTemplate">
<spring:property name="monitoringCount" value="7"></spring:property>
<spring:property name="jmsEndpoint" value="SMTP"></spring:property>
</spring:bean>
<spring:bean id="ThreadingPolicyTemplateForSMTP"
class=" aero.sita.bagmanager.common.retryPolicies.CustomisedAdaptiveRetryPolicyTemplateWrapper">
<spring:property name="delegate" ref="foreverRetryPolicyTemplateForSMTP" />
</spring:bean>
<spring:bean id="foreverRetryPolicyTemplateForJDBC"
class=" aero.sita.bagmanager.common.retryPolicies.RetryForeverTemplate">
<spring:property name="monitoringCount" value="7"></spring:property>
<spring:property name="jmsEndpoint" value="JDBC"></spring:property>
</spring:bean>
<spring:bean id="ThreadingPolicyTemplateForJDBC"
class=" aero.sita.bagmanager.common.retryPolicies.CustomisedAdaptiveRetryPolicyTemplateWrapper">
<spring:property name="delegate" ref="foreverRetryPolicyTemplateForJDBC" />
</spring:bean>

<smtp:connector name="emailConnector" contentType="text/plain"
fromAddress="use...@company.demo1.mconnect.aero" subject="Sita Mail From Mule" >
<spring:property name="retryPolicyTemplate" ref="ThreadingPolicyTemplateForSMTP" >
</spring:property>
<custom-exception-strategy
class="aero.sita.bagmanager.common.service.handler.ExceptionConnectorHandler">
</custom-exception-strategy>
</smtp:connector>

<!-- BEG JDBC Configuration for FIDS -->
<jdbc:connector name="jdbcConnector" pollingFrequency="10000"
dataSource-ref="dataSource" validateConnections="true" >
<spring:property name="retryPolicyTemplate" ref="ThreadingPolicyTemplateForJDBC" />
<custom-exception-strategy
class="aero.sita.bagmanager.common.service.handler.ExceptionConnectorHandler">
</custom-exception-strategy>
<jdbc:query key="selectEmailMessage"
value="SELECT MESSAGE_ID, SENDER_ID, SENDER_NAME, SUBJECT, BODY, ATTACHMENT_URL, TO_LIST, CC_LIST, BCC_LIST, STATUS from
MAILS where STATUS='N'" />

<jdbc:query key="selectEmailMessage.ack"
value="update MAILS set
STATUS='Y' where MESSAGE_ID=#[map-payload:MESSAGE_ID]" />

</jdbc:connector>
<spring:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<spring:property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<spring:property name="url"
value="jdbc:oracle:thin:@57.5.198.175:1521:orcl" />
<spring:property name="username" value="bmoper" />
<spring:property name="password" value="bmoper" />
<spring:property name="maxActive" value="20" />
<spring:property name="maxIdle" value="5" />
</spring:bean>

<model>
<service name="emailHandler_1.0">
<inbound>
<jdbc:inbound-endpoint name="emailJdbc"

connector-ref="jdbcConnector" queryKey="selectEmailMessage">


<jdbc:transaction action="ALWAYS_BEGIN" />
<transformers>
<custom-transformer

class="aero.sita.bagmanager.common.mule.transformer.DataToSendMailRequestDTO">


</custom-transformer>
</transformers>
</jdbc:inbound-endpoint>
</inbound>
<outbound>
<pass-through-router>

<smtp:outbound-endpoint host="172.22.218.149"
connector-ref="emailConnector" user="user16%40company.demo1.mc"
password="s!+" >


<jdbc:transaction action="ALWAYS_JOIN" />
<transformers>
<custom-transformer

class="aero.sita.bagmanager.common.mule.transformer.SendMailRequestDTOToEmailMessage">


</custom-transformer>
<email:object-to-mime-transformer />
</transformers>
</smtp:outbound-endpoint>
</pass-through-router>
</outbound>
</service>


Some more details :
I am using the JDBC because i have to get the "To" Address from the Database and so it is a transaction.

am getting the same error as specified earlier.


please help me out with this.

Reply all
Reply to author
Forward
0 new messages