API Commons Mail - Usando GMail

up

Consegui resolver o erro do método setSSL(true).

Mas agora está acontecendo o seguinte,
Ele chega até esse ponto no console e para:

DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false Sending the email to the following server failed : smtp.gmail.com:587

E abaixo segue meu código:

[code]public class TesteCommons {

public static void main(String[] args) {
	SimpleEmail email = new SimpleEmail();
	try {
		email.setSSL(true);
		System.out.println(email.isSSL());
		email.setDebug(true);
		email.setSmtpPort(587);
		email.setHostName("smtp.gmail.com");
		email.setAuthentication("Login","Senha");
		email.addTo("andre_00@al.furb.br"); 
		email.setFrom("almeida.andref@gmail.com");
		email.setSubject("Teste");
		email.setMsg("Mensagem Testando");
		email.send();
	} catch (EmailException e) {
		System.out.println(e.getMessage());
	} 
}

}[/code]
[]'s

Tudo bem andré?

Tenta ao setar sua porta para envio dos dados, utilizar a padrão (sem específicar alguma porta) ou a 465.

[]'s,
Gabriel.

eu descobri qual era o erro só esqueci de postar aqui de novo :lol:

o que acontece é que a api não tava cosenguindo passar pelo proxy aqui da empresa,
quando eu tentei em casa ou na faculdade foi tranquilo 8)

mas obrigado pela força ^^
foi bem util esse tuto :wink:
valews!

ahh então tudo tranquilo andré.

[]'s e boa tarde!

Ah moçada… testei aqui funcionou de boa…
a questão é que chegou como SPAM isso ja era ou deveria ser esperado ?
Abraço

Adorei o post velho, funfou de primeira parabéns

Vlwwww brother, execelente tópico. Parabéns. Irei testar esta API.

Funcionou de primeira aqui também, muito bom Vlw!

Andei pesquisando como ler e-mail, mas apanhei do api JavaMail. Tal como o tutorial mostra a api commons apache é extramamente mais fácil. No entanto, pesquisei sobre a apache commons li a api inteira mas, percebi que não tem nada em relação a ler e-mails. Alguém pode confirmar isso ae comigo se a api commons apache não é capaz de ler e-mails?

Vlw, abraço!

[quote=Flavio Luiz]Ah moçada… testei aqui funcionou de boa…
a questão é que chegou como SPAM isso ja era ou deveria ser esperado ?
Abraço[/quote]

e ae Flavio, mals a demora…
mas geralmente nao entra como spam nao…ao enviar para um numero muito grande de pessoas pode ser que receba como spam.

[]s

[quote=ArchV]Andei pesquisando como ler e-mail, mas apanhei do api JavaMail. Tal como o tutorial mostra a api commons apache é extramamente mais fácil. No entanto, pesquisei sobre a apache commons li a api inteira mas, percebi que não tem nada em relação a ler e-mails. Alguém pode confirmar isso ae comigo se a api commons apache não é capaz de ler e-mails?

Vlw, abraço![/quote]

entao, pela commons eu nunca vi algo. só que pela api java mail eu lembro de ter visto a muito tempo.
se nao tiver encontrado uma solucao me fala que vou dar uma procurada.

[]'s

[quote=gabrielmassote][quote=ArchV]Andei pesquisando como ler e-mail, mas apanhei do api JavaMail. Tal como o tutorial mostra a api commons apache é extramamente mais fácil. No entanto, pesquisei sobre a apache commons li a api inteira mas, percebi que não tem nada em relação a ler e-mails. Alguém pode confirmar isso ae comigo se a api commons apache não é capaz de ler e-mails?

Vlw, abraço![/quote]

entao, pela commons eu nunca vi algo. só que pela api java mail eu lembro de ter visto a muito tempo.
se nao tiver encontrado uma solucao me fala que vou dar uma procurada.

[]'s[/quote]

Olá gabrielmassote, encontrei uma solução sim, através da javamail.

Obrigado pela atenção, vlw!

q bom cara…compartilha com a gente, ou escreve um pequeno tutorial que coloco com seu nome neste tópico. se for do seu interesse : )
qualquer coisa me mande uma mensagem privada.

parabens pela iniciativa.

[]s

[quote=gabrielmassote]q bom cara…compartilha com a gente, ou escreve um pequeno tutorial que coloco com seu nome neste tópico. se for do seu interesse : )
qualquer coisa me mande uma mensagem privada.

parabens pela iniciativa.

[]s[/quote]

Existe um bug na leitura (no entanto, está aproveitavel ainda a classe), estou tentando corrigir para otimizar o processo de leitura, hoje ou amanhã posto aqui.

Flw.

Galera… to tendo problemas aqui, mas estou utilizando somente a API Javamail mesmo, versão 1.3

O que acontece é o seguinte, já tentei com vários códigos que peguei na net por aí, mas meu e-mail nunca chega com anexo.
Na verdade o anexo chega no corpo em forma de texto, assim:

------=_Part_0_4875744.1272501496859
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Textando texto no meio
------=_Part_0_4875744.1272501496859
Content-Type: text/plain; name="C:\\arquivo_em_anexo.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="C:\\arquivo_em_anexo.txt"

conteudo do arquivo em anexo 123
conteudo do arquivo em anexo 456
conteudo do arquivo em anexo 789
conteudo do arquivo em anexo 012
conteudo do arquivo em anexo 345
------=_Part_0_4875744.1272501496859--

O código java que estou utilizando é o seguinte:

			Session session = Session.getInstance(p, null);

			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress("gp@hwhost.com.br"));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress("teste@gmail.com"));
			message.setSubject("Hello JavaMail Attachment");

			BodyPart messageBodyPart = new MimeBodyPart();

			messageBodyPart.setText("Textando texto no meio");

			Multipart multipart = new MimeMultipart();
			multipart.addBodyPart(messageBodyPart);

			messageBodyPart = new MimeBodyPart();
			DataSource source = new FileDataSource("C:\\arquivo_em_anexo.txt");
			messageBodyPart.setDataHandler(new DataHandler(source));
			messageBodyPart.setFileName("C:\\arquivo_em_anexo.txt");
			multipart.addBodyPart(messageBodyPart);

			message.setContent(multipart);

			Transport tr = session.getTransport("smtp");
			tr.connect(host, fromAccount, password);
			tr.sendMessage(message, message.getAllRecipients());
			tr.close();

Detalhe: estou utilizando um exemplo da própria SUN… http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#SendingAttachments

Já estou há dois dias vendo isso, sei lá, deve ser uma coisa pequena, mas já tentei com vários outros códigos e nada.

Alguém sabe o que pode estar acontecendo???

Valeu galera.

Caracas!! Funcionaa!! Valeu demais!!
Você é o cara!

“O mundo conspira a favor de quem rala!” by Pedro Pletitsch

Cara, gosatria de saber se tem como customizar o email enviado, tipo, colocar as letras em negrito, mudar a fonte…esse tipo de coisa! Formatar o email enviado! Tem como fazer isso?! Se tiver, vc poderia me indicar um tutorial ou material, para que eu aprenda?! Vlw pela forca e parabens pelo post, funcionow direitinho!

Só para adicionar mais informações ao assunto “Envio de email”, quem sabe alguém pode se interessar por essa outra forma de enviar.

Eu utilizo (há bastante tempo) em todos os meus sistemas uma API muito simples, que é a JavaMail (com apenas dois arquivos .jars: mail.jar e activation.jar).

Segue um exemplo de envio de email como remetente GMail:

[code]public static void setEnviarMensagemComAnexo(String emailDestinatario, String assunto, String mensagem, File arquivo) {
boolean autenticar = true;
boolean usaProxy = false;
boolean debug = false;

String smtpHost = "smtp.gmail.com";
String smtpPorta = "587";

String nomeEmitente = "João da Silva";
String emailRemetente = "SEU_LOGIN@gmail.com";
String userName = "SEU_LOGIN";
String password = "SUA_SENHA";

if (usaProxy) {
}

// Propriedades utilizadas no envio da mensagem
Properties props = System.getProperties();

// Se voce estiver atrás de um servidor Proxy é necessário "passar" por ele
if (usaProxy) {
    props.put("http.proxyHost", "192.168.0.1");
    props.put("http.proxyPort", "1080"); 
}

props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true"); // default = false
props.put("mail.smtp.debug", "true");
props.put("mail.mime.charset", "ISO-8859-1");
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", smtpPorta);

// Especialmente para envio DE emails do Gmail
boolean isGmail = emailRemetente.endsWith("gmail.com");
if (isGmail) {
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.socketFactory.port", "465");
    props.put("mail.smtp.socketFactory.fallback", "false");
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
}

// Para fazer autenticação no servidor SMTP antes do envio da mensagem
// Para o servidor saber que quem está tentando enviar a mensagem no 
// seu nome é você mesmo - a maioria exigem isso
javax.mail.Authenticator auth = null;
if (autenticar) {
    props.put("mail.smtp.auth", "true");
    auth = new SMTPAuthenticator(userName, password);
}

Session session = Session.getInstance(props, auth);

// se desejar ver no console toda a informação do envio
session.setDebug(debug); 

try {
    // Define a mensagem a ser enviada
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(emailRemetente, nomeEmitente));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailDestinatario));
    message.setSubject(assunto);

    // Cria o corpo da mensagem
    MimeBodyPart messageBodyPart = new MimeBodyPart();

    // Preenche a mensagem
    // Aqui você define se deseja enviar em puro texto ou mensagem
    // com formatação HTML
    messageBodyPart.setContent(mensagem, "text/html");
    Multipart multiPart = new MimeMultipart();
    multiPart.addBodyPart(messageBodyPart);

    // Se não desejar enviar nada passe um null nesse parâmetro
    if (arquivo != null) {
        messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(arquivo);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(arquivo.getAbsolutePath());
        multiPart.addBodyPart(messageBodyPart);
    }

    // Monta todo o corpo da mensagem (inclusive com o anexo)
    message.setContent(multiPart);

    // Tenta enviar a mensagem
    Transport.send(message);
} catch (MessagingException ex) {
    ex.printStackTrace();
} catch (UnsupportedEncodingException ex) {
    ex.printStackTrace();
}

}[/code]
Simples né?

E para o colega que perguntou se pode formatar a mensagem, claro que pode, você cria em HTML.

Tudo bem javer?

Eu fiz um tópico antes deste que era referente a api java mail.
segue o link: http://www.guj.com.br/posts/list/87637.java

particularmente eu acho mais simples a commons, que utiliza a java mail. Mas a java mail em si é muito útil também.
muito bem lembrado.

e starkiller, reafirmando o que o javer disse, utilize envio de email html.
aqui tem exemplo da commons mail: http://commons.apache.org/email/userguide.html

[]s

Gabriel e Javer, parabéns!

Fiz um gerenciador de e-mails em Delphi uma vez e lembro que foi um inferno fazer o troço funcionar, mas sinceramente observando o exemplo em java me parece bem mais simples.

Só uma pergunta, nessas apis eu consigo configurar um servidor de emails e enviar meus emails com ele? tipo gambazinho@gambazinho.com, tendeu? é possível fazer isso?