| | |
Help, Please!!! Can't Send Mail with SmtpClient
Please support our JSP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Oct 2008
Posts: 3
Reputation:
Solved Threads: 0
Hi, my jsp page uses sun.net.smtp.SmtpClient to send email. It worked fine until the hosted location was moved to another server. Now it generates the sun.net.smtp.SmtpProtocolException and the hosting company can't find what's wrong with it so I'm here hoping somebody can help.
The hosting company tried sending email from the server and it was okay and found no restrictions that prevents my page to access the smtp server.
What could cause the SmtpProtocolException? "locahost" was what I used to connect to the smtp server. When it failed, I tried another smtp server like "mail.xxx.com" for another domain and it worked but the problem is that this server can't let me send mail to other domains except its own domain.
Thanks
The following is the code responsible for the email: (error follows)
-------------------------------------------------------------
Exceptions
-----------------------------------------------------------
sun.net.smtp.SmtpProtocolException:
at sun.net.smtp.SmtpClient.issueCommand(SmtpClient.ja va:48)
at sun.net.smtp.SmtpClient.closeServer(SmtpClient.jav a:38)
at sun.net.NetworkClient.openServer(NetworkClient.jav a:117)
at sun.net.smtp.SmtpClient.openServer(SmtpClient.java :111)
at sun.net.smtp.SmtpClient.(SmtpClient.java:156)
at org.apache.jsp.dbg.email_005fpass2_jsp._jspService (email_005fpass2_jsp.java:134)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:311)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:509)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:211)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyo teHandler.java:309)
at org.apache.jk.common.HandlerRequest.invoke(Handler Request.java:387)
at org.apache.jk.common.ChannelSocket.invoke(ChannelS ocket.java:673)
at org.apache.jk.common.ChannelSocket.processConnecti on(ChannelSocket.java:615)
at org.apache.jk.common.SocketConnection.runIt(Channe lSocket.java:786)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:536)
The hosting company tried sending email from the server and it was okay and found no restrictions that prevents my page to access the smtp server.
What could cause the SmtpProtocolException? "locahost" was what I used to connect to the smtp server. When it failed, I tried another smtp server like "mail.xxx.com" for another domain and it worked but the problem is that this server can't let me send mail to other domains except its own domain.
Thanks
The following is the code responsible for the email: (error follows)
-------------------------------------------------------------
JSP Syntax (Toggle Plain Text)
try { client = new SmtpClient(localhost); client.from(EMAIL_FROM); client.to(strEmail); PrintStream message = client.startMessage(); message.println("From: " + EMAIL_FROM); message.println("To: " + strEmail); message.println("Subject: " + SUBJECT); message.println(); ... client.closeServer(); } catch(IOException e) { <div><%=e%></div> }
-----------------------------------------------------------
sun.net.smtp.SmtpProtocolException:
at sun.net.smtp.SmtpClient.issueCommand(SmtpClient.ja va:48)
at sun.net.smtp.SmtpClient.closeServer(SmtpClient.jav a:38)
at sun.net.NetworkClient.openServer(NetworkClient.jav a:117)
at sun.net.smtp.SmtpClient.openServer(SmtpClient.java :111)
at sun.net.smtp.SmtpClient.(SmtpClient.java:156)
at org.apache.jsp.dbg.email_005fpass2_jsp._jspService (email_005fpass2_jsp.java:134)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:311)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:509)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:211)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyo teHandler.java:309)
at org.apache.jk.common.HandlerRequest.invoke(Handler Request.java:387)
at org.apache.jk.common.ChannelSocket.invoke(ChannelS ocket.java:673)
at org.apache.jk.common.ChannelSocket.processConnecti on(ChannelSocket.java:615)
at org.apache.jk.common.SocketConnection.runIt(Channe lSocket.java:786)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:536)
•
•
Join Date: Aug 2008
Posts: 1,160
Reputation:
Solved Threads: 137
most likely, this is a security issue then, and you will need to authenticate with the server to be able to send mail to other domains
Custom Application & Software Development
www.houseshark.net
www.houseshark.net
•
•
Join Date: Aug 2008
Posts: 1,160
Reputation:
Solved Threads: 137
And also, since it is on another server, make sure to use its mail.xxx.xxx address. Normally mail servers, will require you to authenticate to send mail from a machine other than itself.
Custom Application & Software Development
www.houseshark.net
www.houseshark.net
![]() |
Similar Threads
- How to send am Email using c# ? (C#)
- Auto Email Reminder (ASP.NET)
- Emaul in jsp (JSP)
- Email an aspx page (or any webpage you want) (ASP.NET)
- Could not create 'CDO.Message' object (ASP.NET)
- Need help sending email (ASP.NET)
- Session variables (ASP.NET)
- Send email with Lotus Notes mail server (ASP.NET)
- Email Web Page Content (ASP.NET)
- send email (ASP.NET)
Other Threads in the JSP Forum
- Previous Thread: How to specify character encoding in JavaMail?
- Next Thread: JSP or WML for Web Mobile
| Thread Tools | Search this Thread |
apache backbutton combobox connection database development directorystructure dynamicpagetitles eclipse frames glassfish ie8 imagetodatabse imageupload integer internet java javaee javascript jsf jsp jsppagetitles levels mvc2 mvcmodel2 network parameters passing ping printinserverinsteadofclient redirect request.getparameter response servlet servletdopost()readxml sessions software ssl state_saving_method stocks sun tomcat tutorial update video web






