[ http://issues.apache.org/jira/browse/GERONIMO-1669?page=all ] Jacek Laskowski closed GERONIMO-1669: -------------------------------------
Verified by Vamsavardhana Reddy. Thanks! > javamail Transport.send() is not issuing connect() on the transport before > sending the message. > ----------------------------------------------------------------------------------------------- > > Key: GERONIMO-1669 > URL: http://issues.apache.org/jira/browse/GERONIMO-1669 > Project: Geronimo > Type: Bug > Components: mail > Versions: 1.x > Reporter: Rick McGuire > Assignee: Jacek Laskowski > Fix For: 1.1 > Attachments: GERONIMO-1669.patch > > This was reported on the geronimo user list (problem report attached below). > The error is occuring because the Transport.send() code is failing to > surround the sendMessage() call with connect() and close() calls on the > transport, resulting in the connection failure. Additionally, this code is > not properly merging send failures for multiple transports into a single > SendFailedException with proper reporting of which addresses the message was > not sent to. > Hi Alex, > I am trying to send mail from a servlet. Here is my geronimo-web.xml: > <?xml version="1.0" encoding="UTF-8"?> > <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" > xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1" > xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1" > xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1" > configId="MailWebApp/MailWebApp"> > <dependency> > <uri>geronimo/geronimo-mail/1.2-SNAPSHOT</uri> > </dependency> > <dependency> > <uri>geronimo/geronimo-javamail-transport/1.2-SNAPSHOT</uri> > </dependency> > <context-root>/MailWebApp</context-root> > <context-priority-classloader>false</context-priority-classloader> > <resource-ref> > <ref-name>mail/MailSession</ref-name> > <target-name> > > geronimo.server:J2EEApplication=null,J2EEModule=MailWebApp/MailWebApp,J2EEServer=geronimo,j2eeType=JavaMailResource,name=MailSession > </target-name> > </resource-ref> > > <gbean name="MailSession" class="org.apache.geronimo.mail.MailGBean"> > <attribute name="transportProtocol">smtp</attribute> > <attribute name="host">9.182.150.56</attribute> > <attribute name="useDefault">false</attribute> > <attribute name="properties"> > mail.debug=true > [EMAIL PROTECTED] > mail.smtp.port=25</attribute> > </gbean> > </web-app> > Here are the imports and the doGet() method in my servlet. > import javax.mail.Session; > import javax.mail.Transport; > import javax.mail.Message.RecipientType; > import javax.mail.internet.InternetAddress; > import javax.mail.internet.MimeMessage; > protected void doGet(HttpServletRequest request, HttpServletResponse > response) throws ServletException, IOException { > > response.setContentType("text/plain"); > > PrintWriter out = response.getWriter(); > > try { > InitialContext ic = new InitialContext(); > > Session mailSession = (Session) > ic.lookup("java:comp/env/mail/MailSession"); > mailSession.setDebug(true); > mailSession.setDebugOut(System.err); > out.println("session = "+mailSession); > > MimeMessage msg = new MimeMessage(mailSession); > > msg.setRecipients(RecipientType.TO, new InternetAddress[] {new > InternetAddress("[EMAIL PROTECTED]")}); > > msg.setSubject("Mail sent by MailerServlet"); > > msg.setText("Hello"); > > msg.setFrom(InternetAddress.getLocalAddress(mailSession)); > > Transport.send(msg); > } catch (Exception e) { > e.printStackTrace(out); > } > } > When I access the servlet, I am getting the following Exception. > java.lang.IllegalStateException: Not connected > at > org.apache.geronimo.javamail.transport.smtp.SMTPTransport.sendMessage(SMTPTransport.java:356) > at javax.mail.Transport.send(Transport.java:80) > at javax.mail.Transport.send > (Transport.java:46) > at mailwebapp.MailerServlet.doGet(MailerServlet.java:64) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at org.apache.catalina.core.StandardWrapperValve.invoke > (StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:273) > at > org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:31) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at org.apache.catalina.core.StandardEngineValve.invoke > (StandardEngineValve.java:107) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at org.apache.coyote.http11.Http11Processor.process > (Http11Processor.java:869) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java > :527) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run > (Unknown Source) > Any guesses on what I am doing differently? > Thanks, > Vamsi -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
