Problema com java commons mail

6 respostas
J

Boas
Tou a tentar fazer com que o meu programa mande mails, com anexos, mas depois de experimentar e dar um erro a anexar o ficheiro tentei mandar um mail simples
mas está dar erro.
o código que estou a usar está aqui :

MultiPartEmail email = new MultiPartEmail();
                email.setDebug(true);
                email.setHostName("smtp.gmail.com");
                String nomeUtilizador = JOptionPane.showInputDialog(this, "Por favor insira o seu nome de utiliazdor do E-mail", "Autenticação");
                String palavraPasse = JOptionPane.showInputDialog(this, "Por favor insira a sua palavra passe do E-mail", "Autenticação");
                email.setAuthentication(nomeUtilizador, palavraPasse);
                email.setSSLOnConnect(true);
                String mailCliente = this.ComboBox_email.getSelectedItem().toString();
                email.addTo("...@hotmail.com");
                email.setFrom(nomeUtilizador);
                String assunto = JOptionPane.showInputDialog(this, "Por favor insira o assunto", "Assunto");
                email.setSubject(assunto);
                String mensagem = JOptionPane.showInputDialog(this, "Por favor insira a mensagem", "Mensagem");
                
                
                email.send();

e está a dar o seguinte erro :

DEBUG: JavaMail version 1.4.7

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,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}

DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port 465, isSSL false

Sending the email to the following server failed : <a href="http://smtp.gmail.com:465">smtp.gmail.com:465</a>\ esta linha foi adicionada por mim através dum System.out.println(ex.getMessage());

6 Respostas

J

quando não está rodeado por try catch dá o seguinte output:

DEBUG: JavaMail version 1.4.7

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,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}

DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port 465, isSSL false

Mai 08, 2013 12:00:00 PM FolhaReparações jButton1ActionPerformed

SEVERE: null

org.apache.commons.mail.EmailException: Sending the email to the following server failed : <a href="http://smtp.gmail.com:465">smtp.gmail.com:465</a>

at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)

at org.apache.commons.mail.Email.send(Email.java:1428)

at FolhaReparações.enviarEmail(FolhaReparações.java:2434)

at FolhaReparações.jButton1ActionPerformed(FolhaReparações.java:1021)

at FolhaReparações.access$1700(FolhaReparações.java:58)

at FolhaReparações$18.actionPerformed(FolhaReparações.java:500)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Caused by: javax.mail.MessagingException: Could not connect to SMTP host: <a href="http://smtp.gmail.com">smtp.gmail.com</a>, 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)

 41 more

Caused by: java.net.SocketException: Software caused connection abort: recv failed

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:150)

at java.net.SocketInputStream.read(SocketInputStream.java:121)

at sun.security.ssl.InputRecord.readFully(InputRecord.java:312)

at sun.security.ssl.InputRecord.read(InputRecord.java:350)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)

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)

 48 more

peço desculpa por o primeiro post estar incompleto, é a primeira vez que estou a fazer isto

A

Bom dia JohnDoe940. Fiz o teste com o seu código e aqui funcionou, a diferença é que eu tive que usar uma senha do gmail gerada para aplicativos, como mostra no link http://support.google.com/accounts/bin/answer.py?hl=pt-BR&answer=185833 .
Outra coisa que eu percebi ali é que você não está setando a mensagem a ser enviada por e-mail.
Testa criar uma senha para aplicativo no link que eu passei e vê se funciona.

J

boas, fiz isso que vc disse e agora tá me a dar um erro de Unknown SMTP Host
sobre a mensagem: sim eu reparei nisso pouco tempo depois de criado o tópico, ela agora já tá setada

aqui vai o output para o novo erro:

DEBUG: JavaMail version 1.4.7

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,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}

DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port 465, isSSL false

Mai 08, 2013 1:58:32 PM FolhaReparações jButton1ActionPerformed

SEVERE: null

org.apache.commons.mail.EmailException: Sending the email to the following server failed : <a href="http://smtp.gmail.com:465">smtp.gmail.com:465</a>

at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)

at org.apache.commons.mail.Email.send(Email.java:1428)

at FolhaReparações.enviarEmail(FolhaReparações.java:2434)

at FolhaReparações.jButton1ActionPerformed(FolhaReparações.java:1021)

at FolhaReparações.access$1700(FolhaReparações.java:58)

at FolhaReparações$18.actionPerformed(FolhaReparações.java:500)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Caused by: javax.mail.MessagingException: Unknown SMTP host: <a href="http://smtp.gmail.com">smtp.gmail.com</a>;  [size=24]// esta linha, e o resto abixo dela, é nova[/size][color=red] [/color]

nested exception is:

java.net.UnknownHostException: <a href="http://smtp.gmail.com">smtp.gmail.com</a>

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959)

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)

 41 more

Caused by: java.net.UnknownHostException: <a href="http://smtp.gmail.com">smtp.gmail.com</a>

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)

at java.net.Socket.connect(Socket.java:579)

at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)

at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319)

at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)

 48 more

alguma sugestão agora?
outra pergunta: se eu quisesse que os dados de login fossem inseridos pelo utilizador, na aplicação, o código gerado pela google seria sempre necessário?

J

depois de procurar soluções noutros sítios eu fui fazer ping do smtp.gmail.com, depois disso o erro já á diferente:

DEBUG: JavaMail version 1.4.7

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,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}

DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port 465, isSSL false

Mai 08, 2013 2:21:39 PM FolhaReparações jButton1ActionPerformed

SEVERE: null

org.apache.commons.mail.EmailException: Sending the email to the following server failed : <a href="http://smtp.gmail.com:465">smtp.gmail.com:465</a>

at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)

at org.apache.commons.mail.Email.send(Email.java:1428)

at FolhaReparações.enviarEmail(FolhaReparações.java:2434)

at FolhaReparações.jButton1ActionPerformed(FolhaReparações.java:1021)

at FolhaReparações.access$1700(FolhaReparações.java:58)

at FolhaReparações$18.actionPerformed(FolhaReparações.java:500)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Caused by: javax.mail.MessagingException: Could not connect to SMTP host: <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port: 465; //[size=24]Este erro é novo[/size][color=red] [/color]

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)

 41 more

Caused by: java.net.SocketException: Software caused connection abort: recv failed

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:150)

at java.net.SocketInputStream.read(SocketInputStream.java:121)

at sun.security.ssl.InputRecord.readFully(InputRecord.java:312)

at sun.security.ssl.InputRecord.read(InputRecord.java:350)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)

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)

 48 more

como podem ver o erro novo é Could not connect to SMTP Host smtp.gmail.com
o que devo fazer?
cada vez que quiser correr a aplicação devo fazer ping?
como resolvo este erro?

J

peço desculpa mais uma vez mas pedi ajuda a um ex-professor e ele deu-me o seguinte código:

String mailer = "smtp.gmail.com";
        String prot = "smtp";
        boolean auth = true;
   
       
        try{
            /*
            * inicializa a sessão JavaMail, definindo as proporiedades
            * para o sistema de envio de mail do gmail
            */
            Properties props = System.getProperties();
            //Se a porta de acesso ao servidor smtp é standard fazer:
            //props.put("mail.smtp.host", "smtp.gmail.com");
            //props.put("mail.smtp.auth", "true");
            
            // Se o serviço smtp utiliza uma porta específica (neste caso 465) 
            // e processo de encriptação SSL, fazer:
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.host", mailer);
            props.put("mail.smtp.host", "smtp.gmail.com");
            props.put("mail.smtp.socketFactory.port", "465");
            props.put("mail.smtp.socketFactory.class",
                            "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.starttls.enable","true");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", "465");
            props.put("mail.smtp.debug", "true");
            props.setProperty("mail.smtp.quitwait", "false");

            // Define um objeto para criar uma sessão com as propriedades definidas
            Session sessao = Session.getInstance(props, null);
            sessao.setDebug(true);


            //Constrói a mensagem
            Message msg = new MimeMessage(sessao);
            // Coloca o emissor do mail 
            msg.setFrom(new InternetAddress("meuendereço@gmail.com"));
            // coloca o destinatário do mail
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email removido]"));           
            // se existir cc e bcc defini-os
            /*if (cc != null)
                msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc, false));
            if (bcc != null)
                msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcc, false)); */

            // coloca o assunto do mail
            msg.setSubject("teste");


            // se existir anexos coloca-os na mensagem
            /*if (this.tfanexo.getText() != null && !this.tfanexo.getText().equals("")) {
                // Se existe anexo 
                // É necessário uma message multipart para poder anexa o documento.
                MimeBodyPart mbp1 = new MimeBodyPart();
                mbp1.setText(this.tpmsg.getText());
                MimeBodyPart mbp2 = new MimeBodyPart();
                mbp2.attachFile(this.tfanexo.getText());
                MimeMultipart mp = new MimeMultipart();
                mp.addBodyPart(mbp1);
                mp.addBodyPart(mbp2);
                msg.setContent(mp);
            }
            else {*/
            
            // senão acrescesta-se apenas o texto
            msg.setText("teste");
            

            // define o tipo de cabeçaho
            msg.setHeader("X-Mailer", mailer);
            // coloca a data na mensagem
            msg.setSentDate(new Date());

            // Define o objeto de envio da mensagem via smtp
            SMTPTransport t = (SMTPTransport)sessao.getTransport(prot);
            
            // se o acesso ao servidor smtp necessita de autenticação
            // cria-a indicando o servidor smtp, o utilizador e 
            // a palavra-passe de acesso para poder enviar pelo servidor smtp
            try {
                if (auth)
                    // substituir os dados seguintes pelos dados do mail
                    t.connect("smtp.gmail.com", "merendereço@gmail.com", "password");
                else
                    t.connect();

                // depois de estabelecida a ligação envia a mensagem
                t.sendMessage(msg, msg.getAllRecipients());
            } finally {
                // Se chegar aqui a mensagem foi enviada e emite um aviso
                JOptionPane.showMessageDialog(this, "Mail enviado com sucesso.\n Resposta: " + t.getLastServerResponse());
                t.close();
            }

        }
        catch (AddressException ex) {
            JOptionPane.showMessageDialog(this,"Erro no endereço indicado. \n" + ex.getMessage());
        }  
        catch (MessagingException ex) {
            JOptionPane.showMessageDialog(this,"Erro na mensagem. \n" + ex.getMessage());
        }

e o output diz o seguinte:

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
DEBUG SMTP: EOF: [EOF]
DEBUG SMTP: could not connect to host "smtp.gmail.com", port: 465, response: -1

mais uma vez peço ajuda para saber qual é o erro.
Começo a pensar que se calhar tem alguma coisa a ver com o servidor smtp ou com a porta, visto ser o mesmo erro nos dois códigos

J
Já resolvi... mas só consigo enviar pelo hotmail :( para quem quiser está aqui o código:
String mailer = "smtp.live.com";
String prot = "smtp";
boolean auth = true;
try{
            Properties props = System.getProperties();
            props.put("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.ssl.trust", "smtp.live.com");
            Session session = Session.getDefaultInstance(props);
            session.setDebug(true);
            Transport trans = session.getTransport("smtp");
            trans.connect("smtp.live.com", 25, "meuendereço@hotmail.com", "palavra passe");
            Message msg = new MimeMessage(session);
            // Coloca o emissor do mail 
            msg.setFrom(new InternetAddress("meuendereço@hotmail.com"));
            
            // coloca o destinatário do mail
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(endereço de destino));           
            // se existir cc e bcc defini-os
            /*if (cc != null)
                msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc, false));
            if (bcc != null)
                msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcc, false)); */

            // coloca o assunto do mail
            msg.setSubject("assunto");
            // coloca a mensagem
            msg.setText("mensagem");
            

            // define o tipo de cabeçaho
            msg.setHeader("X-Mailer", mailer);
           
            // Define o objeto de envio da mensagem via smtp
            SMTPTransport t = (SMTPTransport)session.getTransport(prot);
            
            // se o acesso ao servidor smtp necessita de autenticação
            // cria-a indicando o servidor smtp, o utilizador e 
            // a palavra-passe de acesso para poder enviar pelo servidor smtp
            try {
                if (auth)
                    // substituir os dados seguintes pelos dados do mail
                    t.connect("smtp.live.com", "meuendereço@hotmail.com", "palavra passe");
                else
                    t.connect();

                // depois de estabelecida a ligação envia a mensagem
                t.sendMessage(msg, msg.getAllRecipients());
            } finally {
                // Se chegar aqui a mensagem foi enviada e emite um aviso
                JOptionPane.showMessageDialog(this, "Mail enviado com sucesso.", "SUCESSO", JOptionPane.INFORMATION_MESSAGE, sucesso);
                t.close();
            }

        } catch (IOException ex) {
            Logger.getLogger(JanelaMail.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (AddressException ex) {
            JOptionPane.showMessageDialog(this,"Erro no endereço indicado. \n" + ex.getMessage(), "ERRO", JOptionPane.ERROR_MESSAGE, erro);
            System.out.println(ex.getMessage());
        }  
        catch (MessagingException ex) {
            JOptionPane.showMessageDialog(this,"Erro na mensagem. \n" + ex.getMessage(), "ERRO", JOptionPane.ERROR_MESSAGE, erro);
            System.out.println(ex.getMessage());
        }
se alguém precisar é este o código para enviar por email
Criado 8 de maio de 2013
Ultima resposta 17 de mai. de 2013
Respostas 6
Participantes 2