Erro ao enviar email

2 respostas
Stewie_
Ola, já pesquise no forum e no google e ainda não obtive solução para o meu problema. estou tentando enviar um email atraves da minha app android. Porem não estou conseguindo e geralmente da o seguinte erro "Could not conect to SMTP host:smtp.gmail.com,port:465" quando
Transport transport = session.getTransport("smtp");
e se eu coloco como "smtps" no try catch me retorna o erro "Null" vou postar o codigo pra exemplificar! EnviarEmails.java
public class EnviarEmails {  
  
    public boolean enviarEmailImap(String from, String toEmails[],String ccEmails[], String bccEmails[],String assunto, String mensagem,Session session) throws Exception {   
        Message msg = new MimeMessage(session);  
        InternetAddress addressFrom = new InternetAddress(from);  
  
        msg.setFrom(addressFrom);     
  
        InternetAddress[] addressTo = new InternetAddress[toEmails.length];     
        for (int i = 0; i < toEmails.length; i++){     
            addressTo[i] = new InternetAddress(toEmails[i]);     
        }           
        msg.setRecipients(Message.RecipientType.TO, addressTo);            
  
        if(ccEmails != null && ccEmails.length > 0){  
            InternetAddress[] endsCc = new InternetAddress[ccEmails.length];     
            for (int i = 0; i < ccEmails.length; i++){     
                endsCc[i] = new InternetAddress(ccEmails[i]);     
  
            }  
            msg.setRecipients(Message.RecipientType.CC, endsCc);  
        }  
  
        if(bccEmails != null && bccEmails.length > 0){  
            InternetAddress[] endsBCc = new InternetAddress[bccEmails.length];     
            for (int i = 0; i < bccEmails.length; i++){     
                endsBCc[i] = new InternetAddress(bccEmails[i]);     
  
            }  
            msg.setRecipients(Message.RecipientType.BCC, endsBCc);  
        }  
          
        MimeBodyPart anexo = new MimeBodyPart();  
       // FileDataSource source = new FileDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/acessofacil_license.txt");  
       // anexo.setDataHandler(new DataHandler(source));  
       // anexo.setFileName("acessofacil_license.txt");  
          
        MimeBodyPart messagePart = new MimeBodyPart();  
        messagePart.setContent(mensagem, "text/plain");  
          
        Multipart multi = new MimeMultipart();  
        multi.addBodyPart(messagePart);  
       // multi.addBodyPart(anexo);  
          
        msg.setSubject(assunto);             
        msg.setContent(multi);    
  
        msg.setFlag(Flags.Flag.SEEN, true);  
        
        //Transport.send(msg);
        Transport transport = session.getTransport("smtp");   
        transport.connect("smtp.gmail.com", 465,"[email removido]", "xxxxx");  
  
        transport.sendMessage(msg, msg.getAllRecipients());     
        transport.close();   
  
        return true;   
  
    }  
}
metodo na activity
public void btnEnviarClick(View v){
    	//enviar email
    	
    	Properties props = new Properties();   
        props.put("mail.smtp.transport.protocol", "smtp");   
        props.put("mail.smtp.host", "smtp.gmail.com");   
        props.put("mail.smtp.auth", "true");   
        props.put("mail.smtp.port", "465");   
        props.put("mail.smtp.socketFactory.port", "465");   
        props.put("mail.smtp.socketFactory.class",   
                "javax.net.ssl.SSLSocketFactory");   
        props.put("mail.smtp.socketFactory.fallback", "false");   
        props.setProperty("mail.smtp.quitwait", "false");   
    	   Session session = Session.getInstance(props,
    			   new javax.mail.Authenticator() {  
               protected PasswordAuthentication getPasswordAuthentication() {  
                   return new PasswordAuthentication("[email removido]","xxxxx");
               }  
           }); 
    		CtrlEmail cEmail = new CtrlEmail(this);
    		Email email = new Email();
    		Cursor cursor = cEmail.buscarTodos();
    		if(cursor.moveToFirst()){
    			email.setDescricao(cursor.getString(2));
    			email.setSmtp(cursor.getString(3));
    			email.setPortaSmtp((cursor.getInt(6)));
    			email.setUsuario(cursor.getString(4));
    			email.setSenha(cursor.getString(5));
    		}
    		//SendEmail sEmail = new SendEmail();
    		//MailSender mSender = new MailSender(email.getUsuario(),email.getSenha());
    		EnviarEmails em = new EnviarEmails();
    		String[] to = new String[]{"[email removido]"};
    	    String[] vazio = new String[]{"[email removido]"};
    		try {
    			
    			em.enviarEmailImap("[email removido]", to, vazio, vazio, "Teste venda", "... teste...",session );
    			 Toast.makeText(getBaseContext(), "Email Enviado com Sucesso", Toast.LENGTH_LONG).show();
    		} catch (Exception e) {
    			Toast.makeText(getBaseContext(), "Erro ao enviar email " + e.getMessage(), Toast.LENGTH_SHORT).show();
    		}
    		
    	
    }
tbm tentei utilizar este codigo, que tbm esta me retornando null
public class Mail extends javax.mail.Authenticator { 
  private String _user; 
  private String _pass; 
 
  private String[] _to; 
  private String _from; 
 
  private String _port; 
  private String _sport; 
 
  private String _host; 
 
  private String _subject; 
  private String _body; 
 
  private boolean _auth; 
   
  private boolean _debuggable; 
 
  private Multipart _multipart; 
 
 
  public Mail() { 
    _host = "smtp.gmail.com"; // default smtp server 
    _port = "465"; // default smtp port 
    _sport = "465"; // default socketfactory port 
 
    _user = ""; // username 
    _pass = ""; // password 
    _from = ""; // email sent from 
    _subject = ""; // email subject 
    _body = ""; // email body 
 
    _debuggable = false; // debug mode on or off - default off 
    _auth = true; // smtp authentication - default on 
 
    _multipart = new MimeMultipart(); 
 
    // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. 
    MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); 
    mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); 
    mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); 
    mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); 
    mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); 
    mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); 
    CommandMap.setDefaultCommandMap(mc); 
  } 
 
  public Mail(String user, String pass) { 
    this(); 
 
    _user = user; 
    _pass = pass; 
  } 
 
  public boolean send() throws Exception { 
    Properties props = _setProperties(); 
 
    if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) { 
      Session session = Session.getInstance(props, this); 
 
      MimeMessage msg = new MimeMessage(session); 
 
      msg.setFrom(new InternetAddress(_from)); 
       
      InternetAddress[] addressTo = new InternetAddress[_to.length]; 
      for (int i = 0; i < _to.length; i++) { 
        addressTo[i] = new InternetAddress(_to[i]); 
      } 
        msg.setRecipients(MimeMessage.RecipientType.TO, addressTo); 
 
      msg.setSubject(_subject); 
      msg.setSentDate(new Date()); 
 
      // setup message body 
      BodyPart messageBodyPart = new MimeBodyPart(); 
      messageBodyPart.setText(_body); 
      _multipart.addBodyPart(messageBodyPart); 
 
      // Put parts in message 
      msg.setContent(_multipart); 
 
      // send email 
      Transport.send(msg); 
 
      return true; 
    } else { 
      return false; 
    } 
  } 
 
  public void addAttachment(String filename) throws Exception { 
    BodyPart messageBodyPart = new MimeBodyPart(); 
    DataSource source = new FileDataSource(filename); 
    messageBodyPart.setDataHandler(new DataHandler(source)); 
    messageBodyPart.setFileName(filename); 
 
    _multipart.addBodyPart(messageBodyPart); 
  } 
 
  @Override 
  public PasswordAuthentication getPasswordAuthentication() { 
    return new PasswordAuthentication(_user, _pass); 
  } 
 
  private Properties _setProperties() { 
    Properties props = new Properties(); 
 
    props.put("mail.smtp.host", _host); 
 
    if(_debuggable) { 
      props.put("mail.debug", "true"); 
    } 
 
    if(_auth) { 
      props.put("mail.smtp.auth", "true"); 
    } 
 
    props.put("mail.smtp.port", _port); 
    props.put("mail.smtp.socketFactory.port", _sport); 
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.socketFactory.fallback", "false"); 
 
    return props; 
  } 
 
  // the getters and setters

P.s: os jars do additionnal,mail e activation estao no buildpath!

alguem pode me ajudar, pois desde ontem venho pesquisando e no que me parece para muitos esses codigos funcionaram, mais para mim não. alguem pode me ajudar?
Obrigado!

2 Respostas

L

Cara, tenta olhar neste link:
http://www.guj.com.br/posts/list/297617.java#1582009

Postei uma classe simples lá, tenta usar ela pra ver se resolve.

Abraços.

Stewie_

Obtive o mesmo erro! :confused:

Criado 19 de abril de 2013
Ultima resposta 20 de abr. de 2013
Respostas 2
Participantes 2