Não envia email?! JavaMail?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
arm.jr
Java Ninja

Membro desde: 12/03/2005 19:25:05
Mensagens: 294
Offline

Estou usando o Commons-email do projeto jakarta!!

http://www.devmedia.com.br/articles/viewcomp.asp?comp=3306

Estou tentando mandar email p/ o gmail e no método email.send();
para e não acontece mais nada!!

Alguem pode me ajudar!! Sabe o que esta acontecendo?

Logo abaixo o código.
-------------------------

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

public class EmailSimples {

/**
* @param args
* @throws EmailException
*/
public static void main(String[] args) {
SimpleEmail email = new SimpleEmail();

try {
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail
email.setSmtpPort(465);

email.addTo("armjunior@gmail.com", "JUNIOR");//destinatário
email.setFrom("armjunior@gmail.com", "EU MESMO"); // remetente

email.setSubject("Mensagem de Teste"); // assunto do e-mail

email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail

[color=green]email.send(); //envia o e-mail


System.out.println("Mensagem enviada!");

} catch (EmailException e) {
System.err.print(e.getMessage());
}

}

}[/color]





JUNIOR
-------------
ATLHON XP 2600++ / 1GB DDR / HD 80G / ADSL 800 / GRAV DVD LG 4163 / FX 5200 128MB /
[WWW] [MSN]
fsfnit
Java Ninja
[Avatar]

Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline

arm.jr wrote:Estou usando o Commons-email do projeto jakarta!!

http://www.devmedia.com.br/articles/viewcomp.asp?comp=3306

Estou tentando mandar email p/ o gmail e no método email.send();
para e não acontece mais nada!!

Alguem pode me ajudar!! Sabe o que esta acontecendo?

Logo abaixo o código.
-------------------------

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

public class EmailSimples {

/**
* @param args
* @throws EmailException
*/
public static void main(String[] args) {
SimpleEmail email = new SimpleEmail();

try {
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail
email.setSmtpPort(465);

email.addTo("armjunior@gmail.com", "JUNIOR");//destinatário
email.setFrom("armjunior@gmail.com", "EU MESMO"); // remetente

email.setSubject("Mensagem de Teste"); // assunto do e-mail

email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail

[color=green]email.send(); //envia o e-mail


System.out.println("Mensagem enviada!");

} catch (EmailException e) {
System.err.print(e.getMessage());
}

}

}[/color]





Qual a mensagem de erro ?
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Para usar o gmail é bem mais complicado; procure aqui no GUJ um tópico onde resolvo este problema.

prop.put ("mail.smtp.host", "smtp.gmail.com");

prop.put("mail.smtp.auth", "true");
prop.put("mail.debug", "true");
prop.put("mail.smtp.debug", "true");
prop.put("mail.mime.charset", "ISO-8859-1");
prop.put("mail.smtp.port", "465");
prop.put ("mail.smtp.starttls.enable", "true");
prop.put ("mail.smtp.socketFactory.port", "465");
prop.put ("mail.smtp.socketFactory.fallback", "false");
prop.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

Parece que funciona direitinho (com o JDK 5.0; veja se funciona com versões anteriores (pode ser que não funcione porque versões anteriores não suportam direito o SSL.)
[WWW]
arm.jr
Java Ninja

Membro desde: 12/03/2005 19:25:05
Mensagens: 294
Offline

Peguei um exemplo aqui, testei mas esta dando erro!

Código
------------

package JavaMail;

import java.security.Security;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class GoogleTest {

private static final String SMTP_HOST_NAME = "smtp.gmail.com";

private static final String SMTP_PORT = "465";

private static final String emailMsgTxt = "Teste";

private static final String emailSubjectTxt = "Testando o email!";

private static final String emailFromAddress = "armjunior@gmail.com";

private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

private static final String[] sendTo = { "armjunior@gmail.com" };

public static void main(String args[]) throws Exception {

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

new GoogleTest().sendSSLMessage(sendTo, emailSubjectTxt, emailMsgTxt,
emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users";
}

public void sendSSLMessage(String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = true;

Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true";
props.put("mail.debug", "true";
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false";


Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("armjunior", "armjr51";
}
});

session.setDebug(debug);

Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);

InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);

msg.setSubject(subject);
msg.setContent(message, "text/plain";
Transport.send(msg);
}
}



ERRO
--------


DEBUG: JavaMail version 1.4ea
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jre\lib\javamail.providers (The system cannot find the file specified)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
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: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: java.io.FileNotFoundException: C:\Program Files\Java\jre\lib\javamail.address.map (The system cannot find the file specified)
DEBUG: setDebug: JavaMail version 1.4ea
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
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:16
at javax.mail.Transport.send(Transport.java:9
at JavaMail.GoogleTest.sendSSLMessage(GoogleTest.java:74)
at JavaMail.GoogleTest.main(GoogleTest.java:34)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
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:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 8 more


JUNIOR
-------------
ATLHON XP 2600++ / 1GB DDR / HD 80G / ADSL 800 / GRAV DVD LG 4163 / FX 5200 128MB /
[WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Seu exemplo não tem o " prop.put ("mail.smtp.starttls.enable", "true"); " que é o segredo da coisa.

Além disso, você deve estar com problemas de conexão por algum motivo.


DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false ===> deveria ser "true"; é porque você não setou o "starttls".
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect ===> não sei se é porque não tem o "starttls" ou se a porta não está disponível por algum motivo.
[WWW]
arm.jr
Java Ninja

Membro desde: 12/03/2005 19:25:05
Mensagens: 294
Offline

Amigo, beleza, esta enviando tudo certo!!

Agora estou tentando aqui, usar o POP para receber o email.
Nessa parte . prop.put (... ) o que eu coloco para acessar o POP?

Vc tem algum exemplo ai?

JUNIOR
-------------
ATLHON XP 2600++ / 1GB DDR / HD 80G / ADSL 800 / GRAV DVD LG 4163 / FX 5200 128MB /
[WWW] [MSN]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Nao precisa de 80% desse codigo ai. A trick eh usar "smtps", e nao "smtp":



Soh isso.

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
arm.jr
Java Ninja

Membro desde: 12/03/2005 19:25:05
Mensagens: 294
Offline

Valeu cara! Show de bola, bem simples mesmo!!

Agora você sabe usar o POP para receber mensagens?! E simples assim também?!

JUNIOR
-------------
ATLHON XP 2600++ / 1GB DDR / HD 80G / ADSL 800 / GRAV DVD LG 4163 / FX 5200 128MB /
[WWW] [MSN]
brunoccouto
JavaChild
[Avatar]

Membro desde: 06/07/2006 21:07:22
Mensagens: 129
Offline

Não to conseguindo enviar um email.... com esse código:



Me deem uma luz ai... Vlw

[MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team