Olá pessoal estou utilizando o COmmons Mail para enviar uma mala direta. Já testei com o SMTP do gmail e funcionou corretamente.
Mas quando vou tentar utilizar o SMTP do hotmail por exemplo aparece o seguinte erro:
Exception in thread “main” org.apache.commons.mail.EmailException: Sending the email to the following server failed : <a href="http://smtp.live.com:25">smtp.live.com:25</a>
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
at org.apache.commons.mail.Email.send(Email.java:1267)
at br.com.novaideia.sisdecon.mail.CommonsMail.enviaEmailFormatoHtml(CommonsMail.java:138)
at br.com.novaideia.sisdecon.mail.CommonsMail.(CommonsMail.java:19)
at br.com.novaideia.sisdecon.mail.CommonsMail.main(CommonsMail.java:148)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: <a href="http://smtp.live.com">smtp.live.com</a>, port: 465;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
at javax.mail.Service.connect(Service.java:313)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at javax.mail.Transport.send0(Transport.java:190)
at javax.mail.Transport.send(Transport.java:120)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
… 4 more
Caused by: java.net.SocketException: Network is unreachable: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:201)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
… 11 more
O código da minha classe que envia o e-mail é o seguinte:
public class CommonsMail {
public CommonsMail() throws EmailException, MalformedURLException {
enviaEmailFormatoHtml();
}
/**
* Envia email no formato HTML
*
* @throws EmailException
* @throws MalformedURLException
*/
public void enviaEmailFormatoHtml() throws EmailException,
MalformedURLException {
HtmlEmail email = new HtmlEmail();
//String[] recipients = {"[email removido]", "[email removido]"};
// adiciona uma imagem ao corpo da mensagem e retorna seu id
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo");
// configura a mensagem para o formato HTML
// set the html message
email.setHtmlMsg("<html><body>The apache logo - <img src=\"cid:"+cid+"\"></body></html>");
// configure uma mensagem alternativa caso o servidor não suporte HTML
//email.setTextMsg("Seu servidor de e-mail não suporta mensagem HTML");
email.setHostName("smtp.live.com"); // o servidor SMTP para envio do
// e-mail
// for(String string : recipients){
// email.addTo(string);
// }
email.addTo("[email removido]", "Rafael"); // destinatário
email.setFrom("[email removido]", "Rafael"); // remetente
email.setSubject("Teste -> Html Email"); // assunto do e-mail
email.setMsg("<html><body><img src=\"cid:"+cid+"\"></body></html>"); // conteudo
// do
// e-mail
email.setAuthentication("[email removido]", "minhasenha");
email.setSmtpPort(25);
email.setSSL(true);
email.setTLS(true);
// envia email
email.send();
}
/**
* @param args
* @throws EmailException
* @throws MalformedURLException
*/
public static void main(String[] args) throws EmailException,
MalformedURLException {
new CommonsMail();
}
}
Notem que a porta declarada é a 25, mas no erro afirma que tentou conectar na porta 465.
Agradeço a ajuda.