Pessoal preciso enviar um email, com os dados vindos de um bean.
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?