Erro ao enviar e-mail com JavaMail

Eai Galera, to com problema para enviar um email de confirmação…dá este erro!!

javax.servlet.ServletException: 501 5.0.0 HELO requires domain address
 
 	EnviaPServlet.doPost(EnviaPServlet.java:227)
 	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
 
 root cause
 
 javax.mail.MessagingException: 501 5.0.0 HELO requires domain address
 
 	com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363)
 	com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838)
 	com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375)
 	javax.mail.Service.connect(Service.java:275)
 	javax.mail.Service.connect(Service.java:156)
 	javax.mail.Service.connect(Service.java:105)
 	javax.mail.Transport.send0(Transport.java:168)
 	javax.mail.Transport.send(Transport.java:98)
 	EnviaPServlet.doPost(EnviaPServlet.java:219)
 	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

Eu ja tentei dar um telnet…parece q tah tdo OK!!

telnet 10.1.8.1 25
 Trying 10.1.8.1...
 Connected to poirot (10.1.8.1).
 Escape character is '^]'.
 220 poirot.kontex.com.br ESMTP Sendmail 8.13.7/8.13.4; Fri, 11 May 2007 16:00:43 -0300

No codigo esta assim!!

String smtpServer = "10.1.8.1";//poirot.kontex.com.br
              
             String fromMail = "rrmo@gmail.com";
             String fromName = "Raphael";
             String toMail = "rrmo@gmail.com";
             String toName = "Raphael2";
             String mailSubject = "Confirmacao do envio de Orçamento";
             String mailBody = "";
             boolean isHTML = true;
             
             
             
             out.println("<b>Entrando no try<b>");
             
                    Properties mailProps = System.getProperties();
                    mailProps.put("mail.transport.protocol","smtp");
                    mailProps.put("mail.smtp.host",smtpServer);
                    Session mailSession = Session.getDefaultInstance(mailProps,null);
                    //session.setDebug(true);
                    out.println("<b>Entrando no try1<b>");
                    Message message = new MimeMessage(mailSession);
                    try
                    {
                    message.setFrom(new InternetAddress(fromMail,fromName));
                  message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail,toName) );
                    
                    message.setSentDate(new Date());
                    message.setSubject(mailSubject);
                    out.println("<b>Email Enviado com Sucesso1!<b>");
                    if(isHTML==true)
                    {
                        mailBody += "<html><body><table>";
                        mailBody += "<tr><td width=100>Nome:</td><td>"+"Raphael"+"</td></tr>";
                        mailBody += "<tr><td width=100>Cidade:</td><td>"+"SP"+"</td></tr>";
                        mailBody += "</table></body></html>";
                        
                        message.setContent(message.toString(),"text/html");
                        message.setDataHandler(new DataHandler(mailBody,"text/html"));
                        out.println("<b>Email Enviado com Sucesso2!<b>");
                    }else
                    {
                        mailBody = "Exemplo de mensagem de texto.....";
                        message.setContent(message.toString(),"text/plain");
                        message.setText(mailBody);
                    }
                    out.println("<b>Email Enviado com Sucesso3!<b>");
                  Transport.send(message);
                    out.println("<b>Email Enviado com Sucesso4!<b>");
                                }catch(Exception e)
                                       {
                                          e.printStackTrace();
                                          throw new ServletException(e);
                                        }

ME ajudem por favor!!!rs :?

No seu outro post sobre o mesmo assunto (http://www.guj.com.br/posts/list/59345.java#311847)
eu tinha passado um link do FAQ do javamail que explica o problema e a solução (http://java.sun.com/products/javamail/FAQ.html#helo). Você leu e tentou setar a variável especificada?

Li…oyama!!! Nao me ajudou mta coisa!! Ele fala q o retorno eh decorrente de um InetAddress.getLocalHost().getHostName() e para eu olhar o meu JDK e a configuração do nome do servidor. Mas essa parte tá ok!!

Acho que você não entendeu o que está escrito no FAQ:

[quote]Q: I get “MessagingException: 501 HELO requires domain address” when trying to send a message.
A: The SMTP provider uses the results of InetAddress.getLocalHost().getHostName() in the SMTP HELO command. If that call fails to return any data, no name is sent in the HELO command. Check your JDK and name server configuration to ensure that that call returns the correct data. You may also set the “mail.smtp.localhost” property to the name you want to use for the HELO command.[/quote]
O que retorna do método InetAddress.getLocalHost().getHostName() na sua JDK? Não pode retornar “vazio”. Sete a property “mail.smtp.localhost” no seu código que também deve funcionar (isto que eu tinha perguntado no outro post).

Eu dei um out.println(InetAddress.getLocalHost().getHostName());
Ele dá um erro:

java.net.UnknownHostException: ktexnt8: ktexnt8
	java.net.InetAddress.getLocalHost(InetAddress.java:1308)
	MaterialServlet.doPost(MaterialServlet.java:60)
	MaterialServlet.doGet(MaterialServlet.java:40)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

Consegui…nossa era tão simples!!!

Eu tinha q configurar o arquivo /etc/hosts

colocando uma linha no final…

127.0.0.1 nome_da_rede nome_da_maquina

Agora funcionou!!!