API Java Mail - Usando o GMailL

Show!!!
Ótimo material Gabriel!

O problema acima do estevanbc, é porque ele deve ter colocado o usuario e a senha aqui:

class SimpleAuth extends Authenticator {
	public String username = null;
	public String password = null;

Que deveria está aqui:

         //Cria um autenticador que sera usado a seguir  
         SimpleAuth auth = null;  
         auth = new SimpleAuth ("seuusuarioparalogin","suasenhaparalogin"); 

Valeu pelo tópico!

Tudo bem Pessoal?

Desculpa a demora em responder alguns tópicos mas estava com o e-mail errado no meu perfil, então não estava recebendo atualizações.
Agora estou de volta.

[]'s, Gabriel.

Muito bom a sua classe gabrielmassote!

Voce saberia como enviar uma imagem no corpo da mensagem?

[quote=MaxWeber]
Muito bom a sua classe gabrielmassote!

Voce saberia como enviar uma imagem no corpo da mensagem?[/quote]

Então Max, tem uma outra API, a Commons Mail que tem essa alternativa e bem mais fácil. E ainda tem a opção de enviar email HTML, caso precise mandar algo mais elaborado pro e-mail.
obs: parte html não está no tutorial, so me pedir se quiser.

Segue o tópico: http://www.guj.com.br/posts/list/104645.java

De uma olhada e me fale qualquer coisa.

[]'s

[quote=gabrielmassote][quote=MaxWeber]
Muito bom a sua classe gabrielmassote!

Voce saberia como enviar uma imagem no corpo da mensagem?[/quote]

Então Max, tem uma outra API, a Commons Mail que tem essa alternativa e bem mais fácil. E ainda tem a opção de enviar email HTML, caso precise mandar algo mais elaborado pro e-mail.
obs: parte html não está no tutorial, so me pedir se quiser.

Segue o tópico: http://www.guj.com.br/posts/list/104645.java

De uma olhada e me fale qualquer coisa.

[]'s[/quote]

Ok, valew…vou dar uma olhada.

kra eu tava procurando isso faz tempo

mto bom testei aqui funcionou lindamente

mto bom, parabéns, grande abraço

Cara muito bom teu código… bem documentado… vai ser muito útil pra mim, pois funcionou direitinho. Parabéns!

Abraço!

Olá gabrielmassote,

Bom, eu estou precisando de uma classe para enviar e-mail, na verdade eu já tinha conseguido implementar, mas da noite para o dia (literalmente) deixou de funcionar e sempre exibe o mesmo erro… não sei o motivo porque eu não alterei nada no código, enfim… Na busca de solucionar, vi seu tutorial e segui a risca, só alterei os endereços de e-mail e a sua respectiva senha. Ao executar, deu o mesmo erro…

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:291) at javax.mail.Service.connect(Service.java:172) at egrupo.SendMail.sendMail(SendMail.java:105) at egrupo.SendMail.main(SendMail.java:121) 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:519) 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) ... 5 more

Bom, aguardo anciosa por uma resposta.

Desde já muito agradecida.

estás colocando todos os imports certinho?
Usei esta mesma classe e coloquei estes:

import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

[quote=cristianonasciment]brother, tentei criar um exemplo pra testar sua aplicação, e estou apanhando.
a classe SendMail é igual a q está nessa página

index.jsp

[code]<%@ page language=“java” contentType=“text/htm”
pageEncoding=“ISO-8859-1”
import=“meupacote.SendMail”
%>

Enviando meu primeiro E-mail com Gmail <% SendMail sm = new SendMail();

sm.sendMail("katatall@gmail.com","cristianonasciment@gmail.com",“Email Automático”,“Mensagem do email”);
%>

A mensagem foi enviada com sucesso

[/code]

erro:

[code]HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 20 in the jsp file: /index.jsp
The constructor SendMail() is not visible
17:
18:
19: <%
20: SendMail sm = new SendMail();
21:
22:
23: sm.sendMail("katatall@gmail.com","cristianonasciment@gmail.com",“Email Automático”,“chaaaaaaaaaaaaaama”);

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.[/code][/quote]

tenta mudar a declaracao do construtor da classe sendmail para public:


//de:
SendMail(){...}

//para
public SendMail(){...}

Oi aureliolima,

O problema era com a conexão, mais felizmente consegui resolver!

Minha rede estava configurada para obter um endereço IP automaticamente, guando setei um endereço fixo, funcionou :D!

Obrigada por responder!

Já estava vindo responder sua dúvida.
Aqui na faculdade não consigo enviar pelo mesmo motivo.

Bom que conseguiu resolver.

Grande abraço.

Que bom que funcionou Mabel…

Abraço!

Vlw GabrielMassote funcionou numa boa.

Obrigado cara. :smiley:

Desculpa por reabiri o topico, mas estou com uma duvida na leitura de emails no Gmail.

Ao fazer a leitura e nao apagar as mensagens, Depois de algumas tentativas, ele diz que nao encontra mais nenhuma mensagem. Mas ao acessar a conta, elas se encontram la.

Alguem saberia me dizer se tem outro Folder que ficam essas mensagens?

Blz pessoal!!!
Sei que o tópico é antigo, mas ainda muito util, por isso um link que o colega passou não funciona mais, então segue o link abaixo para baixar o activation.jar, postado aqui mesmo nesse fórum:
http://www.guj.com.br/posts/list/30056.java
Valeu, até mais!!!

[quote=claytoncastelli]Blz Felipe!!

Primeiro me desculpe pois faltou falar um jar activation.

javaMail: mail.jar (http://java.sun.com/products/javamail/downloads/index.html)
commons-email-1.1: commons-email-1.1.jar (http://commons.apache.org/downloads/download_email.cgi)
activation: activation.jar (http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html)

Esses foram os jars que eu usei para o exemplo.

Tenta fazer um teste usando o seu e-mail do gmail tanto como origem(from) como destino(to) ou seja por exemplo:

felipe@gmail.com

email.setAuthentication("felipe@gmail.com",“sua senha do gmail”);
email.setSSL(true);
email.setFrom("felipe@gmail.com");
email.addTo("felipe@gmail.com");

felipe@gmail.com e apenas um exemplo, tem que ser seu e-mail válido no gmail.

Você também pode mudar a porta usando o método setSmtpPort(aPortNumber):

email.setSmtpPort(aPortNumber);

Qualquer coisa posta seu código ai para eu ver, ou um exemplo que retrate bem a maneira de como você montou.

Falou!!

[/quote]

Vc está de Parabens gabriel!!!
Estava como um louco procurando, inclusive aqui no guj e nada dava certo, mas seu código rodou tranquilamente.

Parabéns novamente!!!

UUUOOLLLL \0/
Pessoal apesar do tópico ser muito antigo mas creio que ajuda muita gente.
Depois de apanhar muito, descobri (sem pesquisar no google \o/) como mandar no corpo do email
um texto com acentos e demais caracteres especiais.

texto simples

//Setando o conteúdo/corpo do email msg.setContent(message,"text/plain");

texto completo

//Setando o conteúdo/corpo do email msg.setContent(message,"text/html;charset=UTF-8");

O teste foi feito enviando do Gmail para o Hotmail porém acredito que funcione para todos provedores.

Gabriel, caso julgue interessante, inclua no post original.

Abraço a todos…E fiquem com Deus!!!

Camamba Gabriel. Muito bom mesmo.
Obrigado pela ajuda. :wink:

Opa pessoas!

Estou desenvolvendo um sistema para a minha empresa.
Preciso enviar e-mail pelo sistema.

O exemplo está ótimo. Compreendi-o sem muito esforço. Porém estou com um problema.
O servidor de e-mail da minha empresa não precisa de autenticação para enviar e-mail. E no exemplo, precisa enviar um usuário para autenticar.

O erro que aparece é o :

[code]DEBUG: JavaMail version 1.4.3
DEBUG: URL jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/imap.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/pop3.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/pop3.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/smtp.jar!/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 Microsy stems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: URL jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/smtp.jar!/META-INF/javamail.address.map
DEBUG: successfully loaded resource: jar:file:/C:/Program%20Files/Java/tomcat/lib/lib/smtp.jar!/META-INF/javamail.address.map
DEBUG: setDebug: JavaMail version 1.4.3
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host “192.168.2.5”, port 25, isSSL false

Erro: Envio Mensagem
javax.mail.MessagingException: Could not connect to SMTP host: 192.168.2.5, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: 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 controle.EnviarEmail.sendMail(EnviarEmail.java:94)
at controle.TesteCommons.main(TesteCommons.java:12)
Caused by: java.net.ConnectException: Connection refused: 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:284)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:201)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
… 5 more
[/code]

Pelo o que eu entendi, a conexão foi recusada.
Será que foi no servidor de e-mail da empresa?

P.S.: Ainda não testei o código FORA da empresa. Hoje a noite testarei em casa e testarei, mas seu alguém jã puder me ajudar, agradeceria.