Não envia email?! JavaMail?
Estou usando o Commons-email do projeto jakarta!!
[url]https://www.devmedia.com.br/articles/viewcomp.asp?comp=3306[/url]
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.
-------------------------
[color=red]import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class EmailSimples {
/**
* ADELCI JÚNIOR
* @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[/color]
System.out.println("Mensagem enviada!");
} catch (EmailException e) {
System.err.print(e.getMessage());
}
}
}[/color]
Adelci Junior
Curtidas 0
Respostas
Edney Imme
09/04/2009
Ola. Provavelmente pra usar o smtp.gmail voce devera se autenticar.
Veja as rotinas de autenticacao disponiveis neste pacote que isso ira resolver o seu problema.
Tem q verificar tbem no gmail qual o processo de autenticacao necessário.
GOSTEI 0
Edney Imme
09/04/2009
Ola.Complementando o que coloquei acima
If you need to authenticate to your SMTP server, you can call the setAuthentication(userName,password) method before sending your email. This will create an instance of DefaultAuthenticator which will be used by the JavaMail API when the email is sent. Your server must support RFC2554 in order for this to work.
You can perform a more complex authentication method such as displaying a dialog box to the user by creating a subclass of the javax.mail.Authenticator object. You will need to override the getPasswordAuthentication() method where you will handle collecting the user's information. To make use of your new Authenticator class, use the Email.setAuthenticator method.
http://jakarta.apache.org/commons/email/userguide.html
GOSTEI 0
Adelci Junior
09/04/2009
Antes do método email.send() coloquei o email.setAuthentication("armjunior", "xxxxxxx");
Mas não deu certo!
O xxxxxx e a senha do email!
GOSTEI 0
Edney Imme
09/04/2009
ola. nao é so isso.
De uma olhada na web, tem alguns artigo q ensinam como fazer autenticacao no gmail,.
da uma googleada q vc vai achar.
Infelizmente nao tenho acesso total a web dai nao posso te ajudar.
Blz
GOSTEI 0
Adelci Junior
09/04/2009
Beleza, vou dar uma procurada!!
Valeu!!
GOSTEI 0
Edney Imme
09/04/2009
ola.
da uma olhada neste link
http://www.javafree.org/javabb/viewtopic.jbb?page=1&t=859104#lastPost
aqui tem um cara com uma rotina de envio legal pra vc olhar.
GOSTEI 0
Edney Imme
09/04/2009
Procura por SendMail.java :getout:
GOSTEI 0
Marcos Anderson
09/04/2009
Boa noite, pessoal,
Desculpa ressussitar o fórum, mas estou com um problema chato na hora de enviar email pela Commons Email.
Peguei o código do site da apache, para evitar erros, porém continuo recebendo erros. Então só posso supor que seja da minha rede. Porém sou uma negação em redes e nem sei por onde começar a procurar (embora eu já tenha visto que não estou usando proxy).
Bem, aqui está meu código e mais abaixo os erros.
Segue o link de onde peguei o código: http://commons.apache.org/proper/commons-email//userguide.html
Código:
USER e PASS já estão sendo setados de maneira correta.
Stack Trace
Também recebi um erro do tipo: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
Grato pela ajuda!!
public void SendNewsEmail(User user, News news){ try{ Email email = new SimpleEmail(); email.setHostName("smtp.googlemail.com"); email.setSmtpPort(465); email.setAuthenticator(new DefaultAuthenticator(USER, PASS)); email.setSSLOnConnect(true); email.setFrom(USER); email.setSubject(Constants.subjectNewsEmail+user.getFirstName()); email.setMsg(user.getFirstName()+"\n\n"+news.getDescriptionEmail()); email.addTo(user.getEmail()); email.send(); }catch(EmailException e){ e.printStackTrace(); } }
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401) at org.apache.commons.mail.Email.send(Email.java:1428) at br.com.sigmaidea.concurso.controller.SendEmail.SendNewsEmail(SendEmail.java:41) at br.com.sigmaidea.concurso.model.News.Send(News.java:249) at br.com.sigmaidea.concurso.view.Crud.main(Crud.java:138) Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.googlemail.com, port: 465; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) at javax.mail.Service.connect(Service.java:317) at javax.mail.Service.connect(Service.java:176) at javax.mail.Service.connect(Service.java:125) at javax.mail.Transport.send0(Transport.java:194) at javax.mail.Transport.send(Transport.java:124) at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1391) ... 4 more Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at sun.security.ssl.InputRecord.readFully(Unknown Source) at sun.security.ssl.InputRecord.read(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927) ... 11 more
GOSTEI 0
Edney Imme
09/04/2009
Aqui tem um exemplo de como enviar email com SimpleEmail:
http://noobjava.wordpress.com/2010/05/05/enviar-email-com-commons-mail/
GOSTEI 0
Edney Imme
09/04/2009
A porta do GMAIL é 587, com a 465 acho que você não vai mais conseguir enviar.
GOSTEI 0
Edney Imme
09/04/2009
[quote="MarcosAnderson"]Boa noite, pessoal,
Desculpa ressussitar o fórum, mas estou com um problema chato na hora de enviar email pela Commons Email.
Peguei o código do site da apache, para evitar erros, porém continuo recebendo erros. Então só posso supor que seja da minha rede. Porém sou uma negação em redes e nem sei por onde começar a procurar (embora eu já tenha visto que não estou usando proxy).
Bem, aqui está meu código e mais abaixo os erros.
Segue o link de onde peguei o código: http://commons.apache.org/proper/commons-email//userguide.html
Código:
USER e PASS já estão sendo setados de maneira correta.
Stack Trace
Também recebi um erro do tipo: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
Grato pela ajuda!!
Fiz um teste com esse código:
public void SendNewsEmail(User user, News news){ try{ Email email = new SimpleEmail(); email.setHostName("smtp.googlemail.com"); email.setSmtpPort(465); email.setAuthenticator(new DefaultAuthenticator(USER, PASS)); email.setSSLOnConnect(true); email.setFrom(USER); email.setSubject(Constants.subjectNewsEmail+user.getFirstName()); email.setMsg(user.getFirstName()+"\n\n"+news.getDescriptionEmail()); email.addTo(user.getEmail()); email.send(); }catch(EmailException e){ e.printStackTrace(); } }
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401) at org.apache.commons.mail.Email.send(Email.java:1428) at br.com.sigmaidea.concurso.controller.SendEmail.SendNewsEmail(SendEmail.java:41) at br.com.sigmaidea.concurso.model.News.Send(News.java:249) at br.com.sigmaidea.concurso.view.Crud.main(Crud.java:138) Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.googlemail.com, port: 465; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) at javax.mail.Service.connect(Service.java:317) at javax.mail.Service.connect(Service.java:176) at javax.mail.Service.connect(Service.java:125) at javax.mail.Transport.send0(Transport.java:194) at javax.mail.Transport.send(Transport.java:124) at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1391) ... 4 more Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at sun.security.ssl.InputRecord.readFully(Unknown Source) at sun.security.ssl.InputRecord.read(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927) ... 11 more
public void enviaEmailSimples() throws EmailException {< SimpleEmail email = new SimpleEmail(); email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail email.addTo("email@gmail", "Nome"); //destinatário email.setFrom("email@gmail.com", "Nome"); // remetente email.setSubject("Teste -> Email simples"); // assunto do e-mail email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail email.setAuthentication("login", "senha"); email.setSmtpPort(465); email.setSSL(true); email.setTLS(true); email.send(); }
GOSTEI 0