Pagina de contatos?como mandar um email?

30 respostas
F

fiz uma pagina de contatos onde mando os dados serem gravado em um banco de dados… como faco para mandar um e-mail depois disso???

ou se tem outro jeito!!!

fernando

30 Respostas

R

Utilize o pacote javax.mail

http://java.sun.com/javaee/5/docs/api/javax/mail/package-summary.html

L

Tem um tutorial do Paulo excelente aqui no GUJ!

Usei ele ontem e foi só dar um CTRL+C - CTRL+V

quer dizer, quase isso, pq no exemplo dele não usava autenticação e eu tive que usar, mas mudou pouca coisa, se precisar eu te mando como faz pra mandar e-mail tendo que autenticar o usuário.

F

cara se vc puder me ajudar nisso ficaria muito grato contigo…

tentei esse codigo aqui:

Properties props = new Properties();
  props.put("pop.mastersd.net", "smtp.mastersd.net");
  Session s = Session.getInstance(props,null);
  MimeMessage message = new MimeMessage(s);
  InternetAddress from = new InternetAddress("[email removido]");
  message.setFrom(from);
  InternetAddress to = new InternetAddress("[email removido]");
  message.addRecipient(Message.RecipientType.TO, to);  
  message.setSubject("E-Mail enviado a partir do JavaMail.");
  message.setText("Este é o texto da mensagem enviada através do JavaMail!");
  Transport.send(message);

mas ta me retornando uma erro nessa linha:

MimeMessage message = new MimeMessage(s);

meu MSN: febeckers@hotmail e SKIPE: febeckers

se vc pouder me ajudar ou me indicar esse tutorial… eu ficaria muito feliz… hehe

R

Qual exception que ele retorna?

F

esse aqui:

exception

org.apache.jasper.JasperException: Exception in JSP: /Contato.jsp:139

136:   Properties props = new Properties();
137:   props.put("pop.mastersd.net", "smtp.mastersd.net");
138:   Session s = Session.getInstance(props,null);
139:   MimeMessage message = new MimeMessage(s);
140:   InternetAddress from = new InternetAddress("[email removido]");
141:   message.setFrom(from);
142:   InternetAddress to = new InternetAddress("[email removido]");


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: javax/activation/DataSource
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.Contato_jsp._jspService(Contato_jsp.java:225)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NoClassDefFoundError: javax/activation/DataSource
	org.apache.jsp.Contato_jsp._jspService(Contato_jsp.java:204)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
M

Tens como libs o JavaMail e o JAF?

Até!

F

cara tem um jar mail so seria isso???
se nao for onde baixo as certas pois procurei por java mail e achei apenas um arquivo zipado… java mail 1.4…

L

O tutorial é este aqui: http://www.guj.com.br/java.tutorial.artigo.21.1.guj

Pelo seu erro parece que vc não importou o mail.jar. Você colocou ele na sua pasta lib?

R

Vc esta utilizando javax.activation.DataSource por qual motivo?
Ele não achou essa classe javax.activation.DataSource , faltou a biblioteca mail.jar na lib do seu projeto

F

baixei as duas biblioteacas, mail.jar e jaf

me deu o seguinte erro:

exception

org.apache.jasper.JasperException: Could not connect to SMTP host: localhost, port: 25
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: Could not connect to SMTP host: localhost, port: 25
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.Contato_jsp._jspService(Contato_jsp.java:225)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
  nested exception is:
	java.net.ConnectException: Connection refused: connect
	com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
	com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
	javax.mail.Service.connect(Service.java:275)
	javax.mail.Service.connect(Service.java:156)
	javax.mail.Service.connect(Service.java:105)
	javax.mail.Transport.send0(Transport.java:168)
	javax.mail.Transport.send(Transport.java:98)
	org.apache.jsp.Contato_jsp._jspService(Contato_jsp.java:211)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
F

ramilani12:
Vc esta utilizando javax.activation.DataSource por qual motivo?
Ele não achou essa classe javax.activation.DataSource , faltou a biblioteca mail.jar na lib do seu projeto

tche!!! nao te entendi… eu to tentando fazer… com a juda de vcs… esse codigo veio na documentacao do java mail…

M

Uma pergunta meio boba, mas tens um servidor de email em sua máquina? Por exemplo o sendmail.

Até!

F

aos trancos e barrancos eu vo indo…

deu esse erro:

Invalid Addresses

endereco invalidao seria isso

mas qual endereco??

L

Se o seu servidor de e-mail estiver de pé, então é provável que vc precise criar uma conexão autenticada para conseguir mandar o e-mail.

Se for isso, pra mandar e-mail vc precisa desse código:

Transport tr = _mailSession.getTransport("smtp");
                tr.connect(_mailhost, _mailuser, password);
                msg.saveChanges();
                tr.sendMessage(msg, msg.getAllRecipients());
                tr.close();

e precisa adicionar essas duas linhas no seu properties:

p.put("mail.user", _mailuser);
            p.put("mail.smtp.auth", "true");
F

maquiavelbona:
Uma pergunta meio boba, mas tens um servidor de email em sua máquina? Por exemplo o sendmail.

Até!

outlook serve configurado como padrao smtp.mastersd.net, seria isso?

te mais

L

febeckers:
maquiavelbona:
Uma pergunta meio boba, mas tens um servidor de email em sua máquina? Por exemplo o sendmail.

Até!

outlook serve configurado como padrao smtp.mastersd.net, seria isso?

te mais

Não!! hehehe

mas na verdade esquece essa pergunta, pq vc tah se conectando em um servidor de e-mail…não tah usando um servidor local próprio…

F

ta blz…e o que seria o erro: Invalid Addresses

E

endereço invalido!! o endereço existe mesmo?

F

pois entao e isso que esou perguntando… qual endereço???

de quem ta mandando de quem recebe ou o meu smtp???

E

ñ tenho certeza!!! acho que apenas o de destino!

mas eu tenho certeza que ele valida o de destino!

uma vez eu fiz um teste com um destino incorreto deu erro… por isso tenho certeza!

F

cara tenho certeza de que o SMTP o que envia e o de destino estao corretos…

ah uma coisa esse codigo que eu fiz nao requer atutencitacao??? (senha) e o meu smtp achu que precisa???

eu mudo alguma coisa no codigo???

L

febeckers:
cara tenho certeza de que o SMTP o que envia e o de destino estao corretos…

ah uma coisa esse codigo que eu fiz nao requer atutencitacao??? (senha) e o meu smtp achu que precisa???

eu mudo alguma coisa no codigo???

eu jah coloquei o código que vc precisa mudar umas msgs acima!

F

lavh:

eu jah coloquei o código que vc precisa mudar umas msgs acima!

Cara me desculpa nao tinha visto… desculpa mesmo…

tem como vc me explicar o que eu mudo daquele codigo… pois nao consegui fazer me deu um montao de erro aqui…

e me responde mais uma coisa se meu e-mail nao fosse autenticado ira ter funcionado daquele jeito antes???

brigadao pela forca

F

mas é so erro de sintaxe cannot simbol… he he

_mailuser
msg.saveChanges();
passoword

tem que criar essas variaveis? se sao variaveis? a questao eh… ele nao esta encontrando essas variaves…

L

febeckers:
lavh:

eu jah coloquei o código que vc precisa mudar umas msgs acima!

Cara me desculpa nao tinha visto… desculpa mesmo…

tem como vc me explicar o que eu mudo daquele codigo… pois nao consegui fazer me deu um montao de erro aqui…

e me responde mais uma coisa se meu e-mail nao fosse autenticado ira ter funcionado daquele jeito antes???

brigadao pela forca

Sem problemas cara!

Então, se não fosse autenticado iria funcionar daquela forma sim.

Então, pra fazer aquele código que eu mandei funcionar, vc comenta a sua linha que você tah chamando o método Transport.send() e coloca o seguinte código no lugar:

Transport tr = SESSION.getTransport("smtp");
                 tr.connect(_mailhost, _mailuser, password);
                 msg.saveChanges();
                 tr.sendMessage(msg, msg.getAllRecipients());
                 tr.close();

Você precisa substituir SESSION pelo nome da variável que vc usou para armazenar a sessão(Session).

Precisa substituir _mailhost, _mailuser, password pelos valores correspodentes do seu servidor.

Ve se vc usou o nome “msg” tbm para armazenar seu MimeMessage.

E adiciona aquelas outras 2 linhas no properties tbm! Não esquecendo de acertar os valores

Feito essas substituições…deve funcionar. Lembrando qeu agora nesse caso, o e-mail de envio deve ser um endereço válido!

L

febeckers:
mas é so erro de sintaxe cannot simbol… he he

_mailuser
msg.saveChanges();
passoword

tem que criar essas variaveis? se sao variaveis? a questao eh… ele nao esta encontrando essas variaves…

_mailuser = você troca pelo seu endereço de e-mail "[email removido]"
msg.saveChanges(); = msg deve ser substituido pelo nome que vc deu pra referência ao seu MimeMessage
passoword = troca pela sua senha “XXXXX”

F

cara a ultima pergunta… o resto deu certo

Precisa substituir _mailhost, _mailuser, password pelos valores correspodentes do seu servidor.

_mailuser = Usuario
passoword = senha

-mailthost??? o que seria??

L

o endereço do servidor, aquele: “smtp.masterbbb.com

F

Cara funcionou certinhu!!!
muito obrigado pela paciência e pela ajuda!!!
valeu to devendo uma qq coisa e so da um grito!!!

abraco!!!

L

febeckers:
Cara funcionou certinhu!!!
muito obrigado pela paciência e pela ajuda!!!
valeu to devendo uma qq coisa e so da um grito!!!

abraco!!!

hahaha…qué isso cara…o forum é pra essas coisas mesmo!

Eu tava sabendo bem isso pq tive que fazer isso ontem a noite! E tive esses mesmos problemas que vc teve! :smiley:

Criado 4 de maio de 2007
Ultima resposta 4 de mai. de 2007
Respostas 30
Participantes 5