VRaptor - Problema no envio de email

Pessoal,

estou com um problema que está difícil de resolver. Tenho uma classe de envio de email com commons-mail, e ao tentar enviar um email da o seguinte erro:

Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'mail' or call 'Send()' was not found.
	at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
	at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:50)
	at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:95)
	at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:32)
	at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:247)
	at javax.mail.Transport.send(Transport.java:95)
	at javax.mail.Transport.send(Transport.java:48)
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
	... 90 more

Andei pesquisando e parece que e algum conflito com as bibliotecas do google app eginne. Porém, eu baixei um projeto em branco do vraptor sem o app egine no site do vraptor, e deu esse problema.

Alguém ae já passou por isso?

Att.

André Pereira

Pq vc não usa o serviço do google pra enviar emails? acho que a idéia é essa se vc está no GAE.

O problema é que não estou no GAE. Até criei um outro tópico peruntando como tira as configurações do GAE do meu projeto.
http://guj.com.br/java/269262-vraptor---desativar-configuracoes-google--app-egine

Porém configurei um outro projeto do zero(na verdade baixei o projeto em branco do vraptor sem o GAE", sem o GAE e mesmo assim continua dando o erro.

mas se tá sem o gae, pq aparecem as bibliotecas do gae na stacktrace? vc tah rodando pelo plugin do gae no eclipse?

estou rodando pelo plugin do gae. É isso que não estou entendendo. Só pode ter algo que não tirei. Para configurar o Gae o que precisa colocar no projeto?

se não é uma app do GAE, não use o plugin do gae! sua a aplicação num tomcat da vida mesmo, adicionando ela no servidor e subindo ele.

putz! faltou um não no começo da minha resposta rs “não estou rodando pelo plugin do GAE…” rs
Estou rodando no tomcat7.

mas ainda está aparecendo esses pacotes:

 at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)  
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:50)  
    at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:95)  
    at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:32)  
    at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:247)  

se não, posta aí o código que vc está usando pra enviar emails, pode ser que falte alguma configuração antes de dar o send.

procurei no meu workspace e não encontra nenhum jar com essas classes.

O meu código de envio de email está correto, tanto que está enviando corretamente se eu colocar um main na classe e rodar a aplicação fora do tomcat.

segue o código de envio de email…

Properties emailProps = new Properties();
		emailProps.setProperty("mail.host", "smtp.gmail.com");
		emailProps.put("mail.smtp.port", "465");
		emailProps.setProperty("mail.debug", "true");
		emailProps.put("mail.smtp.auth", "true");
		emailProps.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		emailProps.put("mail.smtp.socketFactory.fallback", "false");
		

		Authenticator autenticador = new Authenticator() {
	          protected PasswordAuthentication getPasswordAuthentication() {
	              return new PasswordAuthentication(Util.obterPropertiesDeConfiguracoes().getString("conf.email.usuario"), Util.obterPropertiesDeConfiguracoes().getString("conf.email.senha"));
	          }
	      };
	      Session session = Session.getInstance(emailProps,autenticador);
	      Message msg = new MimeMessage(session);
		
		try {
			msg.setSubject(assunto);
			msg.setSentDate(new Date());
			msg.setFrom(InternetAddress.parse(emailRemetente)[0]);
			msg.setRecipient(Message.RecipientType.TO,
			InternetAddress.parse(emailDestinatario, false)[0]);
			msg.setText("teste");
			Transport.send(msg);
		} catch (MessagingException e) {
			e.printStackTrace();
		}

o certo não seria criar um new Email e setar as coisas nele?

Assim?


try {
			SimpleEmail email = new SimpleEmail();
	
			email.setHostName("smtp.gmail.com"); 
			email.setSmtpPort(465);
			email.setAuthentication("user", "senha");
			email.addTo("andrefelipecp@gmail.com", "Andre"); 
			email.setFrom("andrefelipecp@gmail.com", "Andre");
			email.setSubject("Mensagem de Teste");
			email.setMsg("Teste de Email utilizando commons-email"); 
			email.send();
		
		} catch (EmailException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 

já tentei também e nao funfa.

qual é exatamente o erro que está dando?

se vai usar o vraptor dá pra usar esse cara:

ou se inspirar no cara que envia o email de fato:

ele pega um email com o to, from, subject e o conteúdo já setados e seta o resto

onde consigo essa biblioteca sem ser pelo mavem? Vraptor-simplemail.jar

http://repo1.maven.org/maven2/br/com/caelum/vraptor/vraptor-simplemail/1.0.3/vraptor-simplemail-1.0.3.jar

br.com.caelum.vraptor.environment.Environment

essa classe não deveria estar dentro desse jar? ou é em algum jar separado?

Achei a biblioteca aqui. vou testar aqui e te falo se deu certo. valeu

http://repo1.maven.org/maven2/br/com/caelum/vraptor/vraptor-environment/1.0.1/vraptor-environment-1.0.1.jar

depende desse outro projeto.

pra usar essas libs vc precisa criar um arquivo chamado development.properties com os dados de conf do email
(e um respectivo production.properties com as confs de produção)

[quote=Lucas Cavalcanti]http://repo1.maven.org/maven2/br/com/caelum/vraptor/vraptor-environment/1.0.1/vraptor-environment-1.0.1.jar

depende desse outro projeto.

pra usar essas libs vc precisa criar um arquivo chamado development.properties com os dados de conf do email
(e um respectivo production.properties com as confs de produção)[/quote]

Lucas você poderia mim ajudar, não estou conseguindo enviar e-mail com o vraptor-simplemail, estou usando um projeto web, e tentando enviar com o metodo mailer.send() pelo AsyncSend, meu arquivo esta na pasta src/main/resoureces/development.properties, preciso fazer alguma modificação no Web.xml ?

se vc está num ambiente servlet 2.5 (tipo o tomcat 6) vc precisa cadastrar o pacote do simple-mail na configuração de packages do vraptor.

Obrigado Lucas pela rápida reposta,estou usando o tomcat 7,onde coloco esse arquivo? acabei de assinar o Caelum on-line e estou estudando a fundo o vraptor, queremos usá-lo em larga escala la na empresa.