Pessoal preciso enviar um email, com os dados vindos de um bean.
COmo enviar email via jsp ou servlet?
12 Respostas
Ok. eu ja vi este tutorial.
Mas eu preciso enviar um email com autenticação.
Tipo tem q conectar no servidor checar login e senha e dai enviar a mensagem. Aquele modelo nao é assim.
Alguem ai sabe como fazer isto?
:shock: nAo entendi muito bem.
O meu codigo é este:
é assim q estou tentando enviar esta acontecendo o mesmo problema seu caro colega.
Mas eu nao consegui entender muito bem como montar esta classe.
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;
class Autenticador extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username, password;
username = "user";
password = "senha";
return new PasswordAuthentication(username, password);
}
}
public class TesteEmail{
public static void main(String args[]){
Properties p = new Properties();
p.put("mail.host", "SMTPhost");
// Session session = Session.getInstance(p, null);
Authenticator auth = new Autenticador ();
Session session = Session.getDefaultInstance(p, auth);
MimeMessage msg = new MimeMessage(session);
try {
// "de" e "para"!!
msg.setFrom(new InternetAddress("emailTo"));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("emailFrom"));
msg.setSubject("SSIm");
msg.setText("corpo da mensagem");
Transport.send(msg);
}
catch (AddressException e) {
System.out.println("erro1");
}
catch (MessagingException e) {
e.printStackTrace();
System.out.println("erro2");
}
}
}
Não use a propriedade mail.host use mail.smtp.host
e faltou inserir a propriedade mail.smtp.auth
Properties props = new Properties();
props.put("mail.smtp.host", servidor);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, new Autenticador());
isso seria suficente para verificar se a autenticação esta acontecendo.
Esta variavel servidor é uma String?
eu posso colocar este codigo numa jsp?
A variavel servidor é uma string.
Sim, vc pode por em um JSP.
E como ficaria o cod na jsp?
dentro de tags de declaração no jsp fica igualzinho…
[]'s
Com a declaracao de classas? Ja tentei colocar o cod dentro de uma diretiva jsp e nao deu certo.
Olha so tem um problema, as vezes da este erro:
java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:292)
at com.br.util.EnvMail.enviar(EnvMail.java:22)
at servlets.adm.ServAdm.doGet(ServAdm.java:312)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
e ai galera alguma ideia do que pode ser este erro?
sera q falta algum import ou coisa do tipo? ( … o erro da quando eu uso num classe)
olha meus imports.
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;
Alguma ideia?