GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

API Commons Mail - Usando GMail

Tenta ai
http://www.furutani.com.br/java/EnviarEmail.java

O que o nosso amigo furuntai mandou tem neste outro tópico:

API Java Mail - Usando GMail
http://www.guj.com.br/posts/list/87637.java

Agora você tem boas fontes. Tente resolver utilizando a Commons Mail que é mais simples de enviar e-mail. Caso não der, utilize um dos tópicos disponibilizados por mim e pelo furuntai.

Abraços.

Caramba!!! Nem pensei que vcs iam responder tão rápido… agora não dá pra testar pq não estou com o projeto neste pc, mas à tarde mesmo eu respondo…

VlW!

:smiley:

Gente Já testei aqui neste pc!!!

Tá funcionando sim :smiley: !

Obrigado pela ajuda, vou tentar participar mais no fórum, ajudando no que puder e compartilhando mais as minhas dúvidas…

T+++

Que bom que ajudou.

A intenção é essa mesmo.

Foi só alterar a porta para 465?

Abraco

foi sim :smiley:

Abraço

gabriel eu to com um probleminha aqui…

quando testei a classe em casa deu tudo bem, mas aqui na escola tá complicado…

package email;


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

public class EnviarEmailMessagem {

	       
	     public static void main(String[] args) {  
	   
	         SimpleEmail email = new SimpleEmail();  
	   
	         try {  
	         email.setDebug(true);
	         email.setSmtpPort(25);
	         email.setHostName("mail.infonet.com.br");  
	         email.setAuthentication("cidfillippe.ssssssssss","xxxxxxxxxxx");  
	         email.setSSL(true);  
	         email.addTo("cid_s.prata@ig.com.br"); //pode ser qualquer um email  
	         email.setFrom("cidfillippe@xxxxxxxxxxxx.com.br"); //aqui necessita ser o email que voce fara a autenticacao  
	         email.setSubject("Teste");  
	         email.setMsg("Mensagem Testando");  
	         email.send();  
	   
	         } catch (EmailException e) {  
	   
	         System.out.println(e.getMessage());  
	   
	         }   
	   
	     }  
	   
	 } 

o erro que aparece é esse:


DEBUG SMTP: trying to connect to host "mail.infonet.com.br", port 465, isSSL false
Sending the email to the following server failed : mail.infonet.com.br:25

não entendo pq ele vai com porta 465 e ssl false se eu coloquei no código porta 25 e ssl true…

Por favor me dê um toque no que possa ser…

ve se a escola ai utilizar servidor proxy…
se sim tenta descobrir o ip pra setarmos no codigo…

abraco

Troca a linha email.setSSL(true);
por
email.setSSL(false);

Desculpe a demora pra reponder mas aconteceu um problema e eu tive que adiar esse projeto…
Quando eu tiver condições retornarei e tentarei solucioná-lo com vcs

Abraço

Vago mestre… eu tentei de tudo quanto é forma…

Segue seu código com meus dados…

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

public class SendMail {

public static void main(String[] args) {  
	

 

    SimpleEmail email = new SimpleEmail();   

    try {  
    
    email.setDebug(true);   
    email.setHostName("smtp.gmail.com"); 
    
    
    
    email.setAuthentication("eresalessandro@gmail.com","sssssssssssss");
   
    email.setSSL(true); 
 

    email.addTo("eresalessandro@gmail.com"); //pode ser qualquer um email   
    email.setFrom("eresalessandro@gmail"); //aqui necessita ser o email que voce fara a autenticacao   
    email.setSubject("Teste");   
    email.setMsg("Mensagem Testando");   
    email.send();   

    } catch (EmailException e) {   

    System.out.println(e.getMessage());   

    }   

}   

}

Carreguei todas as libs *.jars segundo sua orientação:

E estão me enviando o seguinte erro…

DEBUG: JavaMail version 1.4.2
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
[color=red][b][b]DEBUG SMTP: trying to connect to host “smtp.gmail.com”, port 465, isSSL false[b]
Pude observar que no seu código do commons-mail você não faz menção a configuração da porta… ela com certeza está pré-configurada pelas classes das libraries q eu adicione… eu preciso fazer issu dar certo da uma força aê véio… valeus…

já setei a porta para 587, com 467 e nada… que trem é esse de servidor proxy… tá complicando…rsrsrs

OTIMO POST
AQ FUNFOU DIREITINHO FICA GRATO

Posso estar a dizer asneiras, mas com este metodo so consigo enviar emails para outros da gmail… nao consigo para hotmail nem outro qualquer…

o que poderá ser?

EDIT: Esqueçam :slight_smile: enganei-me na caixa de texto onde ia buscar os endereços ahahah

Grande dica, valeu 8)

Muito bom…
Deu mais do que certo aqui.

[]'s

Marcelo André

 // Create the email message
	 MultiPartEmail email = new MultiPartEmail();		 
	 
	 // novos parametros
	 email.setSmtpPort(465);
	 email.setAuthenticator(new DefaultAuthenticator(user, senha));
	 email.setDebug(false); // true if you want to debug
	 
	 email.setHostName(this.host);
	 		
	  
	 try{
		 
		 email.getMailSession().getProperties().put("mail.smtp.auth", "true");
		 email.getMailSession().getProperties().put("mail.debug", "true");
		 email.getMailSession().getProperties().put("mail.smtp.port", "465");
		 email.getMailSession().getProperties().put("mail.smtp.socketFactory.port", "465");
		 email.getMailSession().getProperties().put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		 email.getMailSession().getProperties().put("mail.smtp.socketFactory.fallback", "false");
		 email.getMailSession().getProperties().put("mail.smtp.starttls.enable", "true");
  		 
		 email.addTo("---@druid.com.br","eu");		  		
  		 email.addTo("---@druid.com.br","vc");
  		 	  		 email.setFrom(semail.getFrom());
  		 email.setSubject(semail.getTitulo());
  		 email.setMsg(semail.getEmail());		  		
		  
  		 // add the attachment
  		 if(!semail.getAnexoCaminho().equals("")){
  			email.attach(attachment);
  		 }
  		
  		 // send the email
  		 email.send();
  		 System.out.print("-");
  		 System.out.print("email enviado!");
  		 System.out.print("-");
		  
  	 }
	  	
	 catch(EmailException e){
		 System.out.print("erro no envio de email: " + e);
	 }

Pessoal,

eu estava usando o gmail tanto no java qdo no delphi, mas tive contas de e-mail desativadas, alguém passou por isso também?

Existe alguma configuração de ve ser feito no Tomcat?

Pergunto isso porque eu testei o Javamail no meu Tomcat local e ele enviou o anexo sem problemas, já no Tomcat do servidor o email chega com o anexo errado.

Assim:

[quote]------=_Part_1_3564915.1252007036439
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

The file
------=_Part_1_3564915.1252007036439
Content-Type: application/octet-stream; name=p.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=p.pdf
Content-Description: File

JVBERi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nJ1Ya48VxxHVLgu73EXAYgI2DzN27PhOpDvpqn5/jRJFivhia79BPpnYiiUS
Qf6/lHO6Z6b7snfBMQgxt19Vfep1qt8NZhIdDP8uHz++3fzphzj8/N9NGR5++Nv88f7nzbtNmiz/
lIH++8e3w58vsTEPcfI+qhsuf9pImZIh28nn7IfozRSGy7ebV9ujcWcn67367fGIaZucbm+MO52y[/quote]

E isso acontece tanto para o Javamail quanto para o Javamail + o Commons. Alguém sabe o porquê ?

Ola pessoa,
seguinte,

abaixo segue meu codigo, sendo q na linha comentada, ele nao encontra o metodo setSSL(true)
alguem sabe o que pode ser isso?


public class TesteCommons {
	
	public static void main(String[] args) {
		Email email = new HtmlEmail();
		try {
		email.setDebug(true);
		email.setSmtpPort(587);
		email.setHostName("smtp.gmail.com");
		email.setAuthentication("almeida.andref@gmail.com","minhaSenha");
		email.addTo("almeida.andref@gmail.com"); 
		email.setSSL(true);// the method setSSL(boolean) is undefined for the type email.
		email.setFrom("almeida.andref@gmail.com");
		email.setSubject("Teste");
		email.setMsg("Mensagem Testando");
		email.send();
		} catch (EmailException e) {
			System.out.println(e.getMessage());
		} 
	}
}

[]'s

Dúvida:

Só funciona com Gmail? Todos as postagens utilizaram Gmail. Mudando os dados do servidor smtp, usuário e senha, para meu email da empresa, eu conseguiria enviar e-mails?

Valeu! Tks!