Enviar email por Java erro

Pessoal estou utilizando esse codigo mas ele não manda e-mail alguem poderia me ajudar com esse codigo ele da o seguinte erro:

org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtps.bol.com.br:578
Sending the email to the following server failed : smtps.bol.com.br:578
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at Principal.sendEmail(Principal.java:42)
at Principal.main(Principal.java:13)
Caused by: javax.mail.MessagingException: Unknown SMTP host: smtps.bol.com.br;
nested exception is:
java.net.UnknownHostException: smtps.bol.com.br
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1389)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
at javax.mail.Service.connect(Service.java:310)
at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at javax.mail.Transport.send0(Transport.java:188)
at javax.mail.Transport.send(Transport.java:118)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
… 3 more
Caused by: java.net.UnknownHostException: smtps.bol.com.br
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:548)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
… 10 more

o codigo segue abaixo

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;


public class Principal {

    
    public static void main(String... rafa){
        
        sendEmail("rafa.durelli@bol.com.br", "teste email", "por favor chega..");
        
    
    
    }
    
    public static void sendEmail(String to, String subjetc, String message){
        
     SimpleEmail email = new SimpleEmail();
     
    try{
       
        // ExceptionEmail a = new ExceptionEmail();
         
         email.setHostName("smtps.bol.com.br");
         email.setSmtpPort(578);
         email.setAuthenticator(new Authenticator() {
            
             protected PasswordAuthentication getPasswordAuthentication(){
                
                 return new PasswordAuthentication("rafa.durelli", "senha");
             }
         
         });
         email.setSSL(true); //requerido para o smtp do gmail
         email.addTo(to);
         email.setFrom("vica_st@flash.com.br");
         email.setSubject(subjetc);
         email.setMsg(message);
         email.send();
     
     }catch(EmailException e){
       System.out.println("erro ao enviar o email");
       System.out.println(e.getMessage());
       e.printStackTrace();
     
     }
    
    }
}

Caused by: javax.mail.MessagingException: Unknown SMTP host: smtps.bol.com.br

Cara eu “pinguei” o endereço aqui e não obtive resposta.

[quote]ping smtps.bol.com.br
PING smtps.bol.com.br (200.221.4.214) 56(84) bytes of data.
[/quote]

O problema não é no código, tente com outro SMTP para confirmar.

[]s
Roger Leite

cara ja tentei smtp.bol.com.br já tentei vários smtp mas naun vai cara :frowning:

isso esta certo email.setSmtpPort( 578 );

não utiliza a porta padrão?

[quote=bruxel]isso esta certo email.setSmtpPort(57\8);

não utiliza a porta padrão?[/quote]

Não adianto cara continuo a mesma coisa :frowning:

pessoal se alguem já passou por isso ai me ajudem :slight_smile:

Complicado.
Seu problema está nas configurações do smtp.

A porta (post acima) está correta mesmo ?
O yahoo usa SSL mesmo ?
Seu firewall não está bloqueando ?

Neste post http://www.guj.com.br/posts/list/38676.java,
o cara relata problemas com yahoo e sucesso com o gmail.

Boa sorte !
Roger Leite

cara eu não estou usando yahoo e sim bol :slight_smile: mas eu mudei a porta para 25 mesmo assim sem sucesso cara :slight_smile:

pessoal para enviar emial com java é preciso somente baixar as API do javaMail ou eu preciso configurar(instalar) algum servidor de email smtp aqui na minha máquina [url]?[]'s

Você consegue configurar o Outlook Express, Thunderbird, ou algum outro software para ler emails, com as configurações que você nos passou para o BOL?
Se conseguir, então é erro de programa; se não conseguir, é algum problema de configuração.
Exemplos de coisas que podem dar errado:

  • Você passou a porta errada (já que o smtps.bol.com.br realmente existe);
  • Você está em algum lugar onde o proxy não deixa você usar a porta 578 para se comunicar com um host SMTP;
  • Você está em algum lugar onde o proxy só deixa você trafegar http/https;
  • O servidor do BOL está fora;
  • Você precisa usar STARTTLS ou SSL (nesse ponto, veja quais são os parâmetros mágicos que se usam na programação Java para usar o Gmail, que também usa STARTTLS/SSL. Aqui mesmo no fórum já foram postadas essas dicas uma porção de vezes.

e assim por diante.

Veja esse link:

[quote=thingol] Você consegue configurar o Outlook Express,
[/quote]

Sim cara consegui normalmente configurar ele :frowning: o motivo por não estar enviando o email eu não consigo entender ! Estou precisando de ajuda :slight_smile: :lol:

po cara eu estou conseguindo mandar o email pelo outlook normalmente mas no Java não :frowning:

Ola eu tô com um problema na no envio de email. Assim, eu uso uma máquina virtual pra desenvolver e testar.
Eu devo estar fazendo alguma burrada. Segue o erro e as classe utilizadas:

<<<<<>>>>>
org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.terra.com.br:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873)
at org.apache.commons.mail.Email.send(Email.java:898)
at com.rebaixarts.contato.services.EmailTeste.sendEmail(EmailTeste.java:32)
at com.rebaixarts.contato.struts.action.FaleConoscoAction.perform(FaleConoscoAction.java:50)
at org.apache.struts.action.Action.execute(Action.java:401)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)

<<<<<>>>>>
package com.rebaixarts.contato.services;

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;

import com.rebaixarts.contato.vo.*;

public class Email extends Authenticator implements ConfigPadraoEmail {

/* Classe de Autenticação */
public class SmtpAuthenticator extends Authenticator {  
    public PasswordAuthentication getPasswordAuthentication()  {  
      
        return new PasswordAuthentication(ConfigPadraoEmail.USERNAME,
        		                          ConfigPadraoEmail.PASSWORD);  
    }  
}

/* Classe de Envio */
public String sendMail (String from, String mensagem) throws MessagingException {
			
	Address destTo = new InternetAddress(ConfigPadraoEmail.USERNAME); 
	Address destCc = new InternetAddress(ConfigPadraoEmail.USERNAME);
    Address destBcc = new InternetAddress(ConfigPadraoEmail.USERNAME);
	
	try{ 
		
	    Properties mailProps = new Properties();
	
        //Define o SMTP de envio
        mailProps.put("mail.smtp.host", ConfigPadraoEmail.MAILSERVER);
               
        //Realiza a autenticação
        Authenticator auth = new SmtpAuthenticator(); 
        
        Session mailsession = Session.getInstance(mailProps, auth);                           
         
        //Inicializa o objeto Message
        Message message = new MimeMessage(mailsession);

        message.setFrom(new InternetAddress(from));
                 
        //Define o(s) destinatário(s): TO, CC, BCC
        if (destTo != null) { 
           message.setRecipient(Message.RecipientType.TO, destTo); 
        }  
                          
        if (destCc != null) { 
           message.setRecipient(Message.RecipientType.CC, destCc); 
        }  
                          
        if (destBcc != null) { 
           message.setRecipient(Message.RecipientType.BCC, destBcc); 
        }  
        
        //Define o assunto do E-Mail
        message.setSubject(ConfigPadraoEmail.ASSUNTO);

        //Define o conteúdo da Mensagem
        message.setContent(mensagem.toString().replace("\n", "<br>"), "text/html");

        //Define a data atual a mensagem
        message.setSentDate(new Date());

        //Enviado o E-Mail
        Transport transport = mailsession.getTransport("smtp");
        
        System.out.println("Conectando no servidor de smtp: "+ ConfigPadraoEmail.MAILSERVER +"...");
        
        //Aqui ocorre o erro!!!!!
        transport.connect(ConfigPadraoEmail.MAILSERVER, ConfigPadraoEmail.USERNAME, ConfigPadraoEmail.PASSWORD);

        if (transport.isConnected()) {
        	
            System.out.println("Conectado ["+ ConfigPadraoEmail.MAILSERVER +"]");
            System.out.println("Enviando Mensagem...");
            
            transport.send(message);
        
            System.out.println("Mensagem Enviada!!!");
        }
        
    } catch (MessagingException e) {
        e.printStackTrace();
        return e.getMessage();
    } 
    
    return null;        
}    

}

<<<<<<Interface com variáveis>>>>>>
package com.rebaixarts.contato.vo;

public interface ConfigPadraoEmail {

public static final String USERNAME = "meuemail@terra.com.br";	
public static final String MAILSERVER = "mail.terra.com.br";
public static final String ASSUNTO = "Dúvida Internauta";
public static final String PASSWORD = "senha";

}

<<<<<>>>>>
package com.rebaixarts.contato.struts.action;

import java.io.IOException;

import org.apache.commons.mail.*;

import javax.mail.MessagingException;
import javax.servlet.ServletException;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.rebaixarts.contato.services.Email;
import com.rebaixarts.contato.services.EmailTeste;

import com.rebaixarts.contato.struts.form.FaleConoscoForm;

public final class FaleConoscoAction extends Action {

public ActionForward perform(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)
                             throws IOException, ServletException {
        	
	 FaleConoscoForm enviarForm = (FaleConoscoForm) form;
	 Email servicesEmail = new Email();  
	    	
	 String result = null;
       	    	    	
	 String nome  = enviarForm.getNome(); //Nome qualquer   	
 String texto = enviarForm.getTexto();   //Um texto em uma textArea
 String remetente = enviarForm.getEmail(); //Um email válido qualquer
      
     //Tratamento para página inicial 
 if (nome == null || remetente == null) {
   	return (mapping.findForward("first"));
 } else if (nome.equals("") || remetente.equals("")) {
     	return (mapping.findForward("empty"));    
 }
   	    	    
 //Enviando Email 
 try {			

	result = servicesEmail.sendMail(remetente, texto);

    } catch (MessagingException e) {
	e.printStackTrace();
    } 
 	
  		 
    if (result == null) {
    
       return mapping.findForward("failure");  
    
    } else { 
    
       enviarForm.setNome(null);
 	   enviarForm.setEmail(null);
       enviarForm.setTexto(null);
    }
    
    return mapping.findForward("success");                
}

}