Olá, estou com um serio problema com o codigo abaixo, estou tentando enviar email usando o Cmmons Mail, ele sempre da erro, ja segui inumeros tutoriais,e nada ainda. segue o codigo abaixo:
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class CommonsMail {
public CommonsMail() throws Exception, MalformedURLException {
enviaEmailSimples();
}
public void enviaEmailSimples() throws Exception {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do
// e-mail
email.addTo("emailqueeuqueroenviar@gmail.com", "destinatario"); // destinatário
email.setFrom("meuemail@gmail.com", "Eu"); // remetente
email.setSubject("Teste -> Email simples"); // assunto do e-mail
email.setMsg("Teste de Email utilizando commons-email"); // conteudo do
// e-mail
email.setAuthentication("minha senha", "meu login");
email.setSmtpPort(465);
email.setSSL(true);
email.setTLS(true);
email.send();
}
public static void main(String[] args) throws Exception {
new CommonsMail();
}
}
Agora estou mandando o erro,
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message
at commonsMail.CommonsMail.enviaEmailSimples(CommonsMail.java:19)
at commonsMail.CommonsMail.<init>(CommonsMail.java:11)
at commonsMail.CommonsMail.main(CommonsMail.java:37)
Caused by: java.lang.ClassNotFoundException: javax.mail.Message
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 3 more
fico grato se alguem conseguir me ajudar, desde ja agradeço a colaboração de todos.
amigo, obrigado pela resposta, segui seu conselho e agora o erro é o seguinte,
Exception in thread “main” org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:450
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
at org.apache.commons.mail.Email.send(Email.java:1267)
at commonsMail.CommonsMail.enviaEmailSimples(CommonsMail.java:30)
at commonsMail.CommonsMail.<init>(CommonsMail.java:11)
at commonsMail.CommonsMail.main(CommonsMail.java:34)
Caused by: javax.mail.MessagingException: Unknown SMTP host: smtp.gmail.com;
nested exception is:
java.net.UnknownHostException: smtp.gmail.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1704)
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.UnknownHostException: smtp.gmail.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source)
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
[quote=mestrefox]sim login e senha estão corretos… na minha empresa se usa servidor proxy autenticado, mas nenhuma porta é bloqueada, isso influência??
[/quote]
SimpleEmail email = new SimpleEmail();
//testando api java q manda email
try{
email.setHostName("smtp.live.com"); // o servidor SMTP para envio do e-mail
email.setAuthentication("usuario", "senha");
email.addTo("aylton-silva@hotmail.com", "Aylton"); //destinatário
email.setFrom("thayson.silva@hotmail.com", "Thayson"); // remetente
email.setSubject("Mensagem de Teste"); // assunto do e-mail
email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail
email.send(); //envia o e-mail
}catch (EmailException e) {
new RuntimeException("erro ao enviar o e-mail. "+e);
}
Segundo a exceção: java.lang.ClassNotFoundException: org.apache.commons.mail.EmailException
Falta adicionar a biblioteca que contém a classe org.apache.commons.mail.EmailException no seu projeto.
[quote=romarcio]Segundo a exceção: java.lang.ClassNotFoundException: org.apache.commons.mail.EmailException
Falta adicionar a biblioteca que contém a classe org.apache.commons.mail.EmailException no seu projeto.[/quote]
Romarcio, eu fiz dowload desta biblioteca conforme a imagem abaixo:
Galera sou iniciante em java e estou tendo um problema com o Commons Mail.
Adicionei as bibliotecas Commonsmail 1.2 (que reconhece os métodos setSSL e setTLS) e a javamail. 1.4.7.
Ja testei com as portas 465 e 587.
O erro que dá é:
Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
Java Result: 1