Criei um programa que faz envio de emails com javamail, funciona bem com servidores como yahoo e gmail. Estes servidores usam a porta 465 e conexão SSL. Quando tento enviar pelo nosso servidor de email, que não usa a 465 e sim a porta 25 e não suporta conexão SSl, ele dá o seguinte erro:
Ivan posta o código para da uma olhada porque eu passei pelo mesmo problema parece que você esta tentando se conectar em um servidor que não usa SSL.
I
Ivan_Sotelo_Codo
Pois é, na verdade também acho q é isso mesmo q está acontecendo, só que eu não sei acertar o código para enviar sem SSL.
publicvoidsendMail(Stringfrom,Stringto,Stringsubject,Stringmessage){Propertiesprops=newProperties();/* props.setProperty("proxySet","true"); props.setProperty("socksProxyHost","192.168.155.1"); // IP do Servidor Proxy props.setProperty("socksProxyPort","1080"); // Porta do servidor Proxy */props.put("mail.transport.protocol","smtp");//define protocolo de envio como SMTPprops.put("mail.smtp.starttls.enable","true");props.put("mail.smtp.host",mailSMTPServer);//server SMTP do GMAILprops.put("mail.smtp.auth","true");//ativa autenticacaoprops.put("mail.smtp.user",from);//usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)props.put("mail.debug","true");props.put("mail.smtp.port",mailSMTPServerPort);//portaprops.put("mail.smtp.socketFactory.port",mailSMTPServerPort);//mesma porta para o socketprops.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");props.put("mail.smtp.socketFactory.fallback","false");//Cria um autenticador que sera usado a seguirSimpleAuthauth=newSimpleAuth();Sessionsession=Session.getDefaultInstance(props,auth);session.setDebug(true);//Habilita o LOG das ações executadas durante o envio do email//Objeto que contém a mensagemMessagemensagem=newMimeMessage(session);try{//Setando o destinatáriomensagem.setRecipient(Message.RecipientType.TO,newInternetAddress(to));//Setando a origem do emailmensagem.setFrom(newInternetAddress(from));//Setando o assuntomensagem.setSubject(subject);//Setando o conteúdo do corpo do emailmensagem.setContent(message,"text/plain");}catch(Exceptione){System.out.println(">> Erro: Completar Mensagem");e.printStackTrace();}//Objeto encarregado de enviar os dados para o emailTransporttr;try{tr=session.getTransport("smtp");//define smtp para transportetr.connect(mailSMTPServer,usuario,senha);mensagem.saveChanges();//envio da mensagemtr.sendMessage(mensagem,mensagem.getAllRecipients());tr.close();}catch(Exceptione){// TODO Auto-generated catch blockSystem.out.println(">> Erro: Envio Mensagem");e.printStackTrace();}}}
Desde já agradeço.
R
rodrigocardoso
Ivan, eu estava com o mesmo problema (necessitava da porta 25). Coloquei como comentário a linha