Pessoal, estou a vários dias pesquisando pra fazer um código pra enviar email usando o gmail. Mas nada está funcionando.
Quero fazer uma aplicação simples mesmo, apenas executando o main e enviando o email.
Se alguém puder ajudar, agradeço.
public static void main(String[] args) throws EmailException {
EnviaEmail enviaEmail = new EnviaEmail();
enviaEmail.sendEmail();
}
public void sendEmail(){
Properties p = new Properties();
p.put("mail.host", "smtp.gmail.com");
p.put("mail.stmp.port", "587");
Authenticator auth = new TesteAuth();
Session session = Session.getInstance(p, auth);
MimeMessage msg = new MimeMessage(session);
try {
// "de" e "para"!!
msg.setFrom(new InternetAddress("meu_email@gmail.com"));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("destinatario@qualquerEmail.com.br"));
// nao esqueca da data!
// ou ira 31/12/1969 !!!
msg.setSentDate(new Date());
msg.setSubject("Teste envio de email em Java");
msg.setText("Teste envio de email em Java");
// evniando mensagem (tentando)
Transport.send(msg);
}
catch (AddressException e) {
e.printStackTrace();
}
catch (MessagingException e) {
e.printStackTrace();
}
}
class TesteAuth extends Authenticator{
public TesteAuth(){
getPasswordAuthentication();
}
public PasswordAuthentication getPasswordAuthentication() {
String username, password;
username = "meu_usuario_no_gmail";
password = "minha_senha";
return new PasswordAuthentication(username, password);
}
}
}[/code]
Segue o erro que ocorre na linha:
MimeMessage msg = new MimeMessage(session);
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
at javax.mail.Service.connect(Service.java:291)
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 br.com.email.classes.EnviaEmail.sendEmail(EnviaEmail.java:45)
at br.com.email.classes.EnviaEmail.main(EnviaEmail.java:24)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
... 8 more
Oi jakefrog,
a porta tá certa http://mail.google.com/support/bin/answer.py?hl=pt&answer=13287
O erro ocorre na linha abaixo e não está pegando a porta, pois no erro mostra que não está conseguindo conectar na porta 25, mas eu setei a 587. Será que o código tá errado?
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail
email.addTo("teste@gmail.com", "Guilherme"); //destinatário
email.setFrom("teste@gmail.com", "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("teste", "xxxxx");
email.setSmtpPort(465);
email.setSSL(true);
email.setTLS(true);
email.send();
}[/code]
Eu comentei as linhas abaixo pois não são reconhecidas. [color=red]The method setSSL(boolean) is undefined for the type SimpleEmail[/color]
Será que falta algum jar? Estou usando o commons-email-1.0.jar
Alterei as libs para commons-email-1.2.jar, commons-email-1.2-javadoc.jar e commons-email-1.2-sources.jar e os métodos setSSL e setTLS foram reconhecidos.
Mas continua dando erro. É preciso configurar algo no GMAIL?
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)
at org.apache.commons.mail.Email.send(Email.java:1267)
at br.com.email.classes.CommonsMail.enviaEmailSimples(CommonsMail.java:35)
at br.com.email.classes.CommonsMail.<init>(CommonsMail.java:14)
at br.com.email.classes.CommonsMail.main(CommonsMail.java:118)
Caused by: 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:1706)
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.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
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
[quote]ve se isso lhe ajuda
Já vi esse tópico, não ajudou. vlw
Agora não estou em casa, mas já executei de casa e tb deu erro. Vou executar hj a noite de casa com as alterações que fiz pra ver vai.
Executando de casa, funcionou. Provavelmente era bloqueado no trabalho.
Mais uma coisa, como faço pra ver o log das execuções? Li em algum tópico que dava pra habilitar, mas não achei mais o link.
Já passei por isso. Horas pesquisando e era o proxy da rede barrando. rs
Primeiro dia dedicado a ajudar no GUJ e já ajudei alguns, tem muita gente iniciando, com dúvidas, legal.
Já passei por isso. Horas pesquisando e era o proxy da rede barrando. rs
Primeiro dia dedicado a ajudar no GUJ e já ajudei alguns, tem muita gente iniciando, com dúvidas, legal.
Então fredericomaia10, na verdade eu testava em casa e no trampo, mas só ontem com as ajudas que achei o código certo, depois foi só descartar a questão do proxy. abç.