Problema usando Commons Mail

13 respostas
M

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:

package commonsMail;

import java.net.MalformedURLException;
import java.net.URL;

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("[email removido]", "destinatario"); // destinatário
	email.setFrom("[email removido]", "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.

vlw

13 Respostas

R

Voce precisa adicionar a biblioteca javaMail no seu projeto.

http://www.oracle.com/technetwork/java/index-138643.html

M

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 : <a href="http://smtp.gmail.com:450">smtp.gmail.com:450</a>

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: <a href="http://smtp.gmail.com">smtp.gmail.com</a>;

nested exception is:

java.net.UnknownHostException: <a href="http://smtp.gmail.com">smtp.gmail.com</a>

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: <a href="http://smtp.gmail.com">smtp.gmail.com</a>

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

sabe pq?

R

Agora ele já está tentando a conexão.

O problema é que não está conseguindo se conectar ao Gmail.

Poste seu código entre as tags CODE do editor de texto, facilita a visualização do código.

Acredito que deva ser email.setAuthentication("login", "senha"); vc colocou senha e login.

M

sim login e senha estão corretos… na minha empresa se usa servidor proxy autenticado, mas nenhuma porta é bloqueada, isso influência??

R

mestrefox:
sim login e senha estão corretos… na minha empresa se usa servidor proxy autenticado, mas nenhuma porta é bloqueada, isso influência??

Não sei dizer se o proxy influencia.

Essa porta smtp.gmail.com:450 troca por 465 ou 587.

M

muito obrigado pela dica, graças a ela o meu problema foi resolvido…

vlw

R

mestrefox:
muito obrigado pela dica, graças a ela o meu problema foi resolvido…

vlw

Ok, que bom, faz o seguinte agora.

Edita seu 1º post e coloca no lado do titulo isso [RESOLVIDO].

Ele vai ficar assim: PROBLEMA USANDO COMMONS MAIL [RESOLVIDO]

Isso é padrão aqui no forum quando um problema postado é resolvido.

T+.

T

Boa noite, estou precisando de uma ajudinha

estou tentando enviar email com api java commons (jacarta)
porem estou com o seguinte erro:

root cause

java.lang.ClassNotFoundException: org.apache.commons.mail.EmailException

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)

java.lang.Class.getDeclaredConstructors0(Native Method)

java.lang.Class.privateGetDeclaredConstructors(Unknown Source)

java.lang.Class.getConstructor0(Unknown Source)

java.lang.Class.newInstance0(Unknown Source)

java.lang.Class.newInstance(Unknown Source)

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)

org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)

org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)

java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

java.lang.Thread.run(Unknown Source)

e o meu código:

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

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("[email removido]", "Aylton"); //destinatário

			email.setFrom("[email removido]", "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);
		}

desde ja agradeço…

R

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.

T

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.

Romarcio, eu fiz dowload desta biblioteca conforme a imagem abaixo:

e adicionei ao projeto porem o erro persiste

R

Bom, a exceção é bem clara. A classe não está sendo encontrada, embora exista nessa biblioteca.

Então talvez, você apenas colou a biblioteca na pasta lib, mas não adicionou no projeto. Seria o único motivo para essa exceção se lançada.

T

romarcio:
Bom, a exceção é bem clara. A classe não está sendo encontrada, embora exista nessa biblioteca.

Então talvez, você apenas colou a biblioteca na pasta lib, mas não adicionou no projeto. Seria o único motivo para essa exceção se lançada.

Obrigado romarcio vou tentar solucionar o problema qlq coisa confirmo aqui o resultado

M

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

Desde já agradeço a ajuda de todos.

Criado 3 de agosto de 2010
Ultima resposta 21 de ago. de 2014
Respostas 13
Participantes 4