Pessoal como faço para enviar e-mail através do JSF?
Se possível me informar algum exemplo, tutorial.
Obrigado.
Aqui tem um exemplo completinho: http://benignosales.wordpress.com/2010/11/18/jsf-2-0-enviando-e-mail-com-commons-mail/
Bom, fiz o exemplo em um projeto separada, porém ocorre o seguinte erro:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
Será que pode ser o Proxy? Como faço para inserir o proxy e a porta?
Obrigado.
Java_Terminator,
Vou ressucitar o tópico, vc conseguiu implementar sem problemas?
pois segui como dizia no forum e me deram alguns erros
vlw
Ai vai um exemplo:
Email email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator("username", "password"));
email.setTLS(true);
email.setFrom("De:");
email.addTo("Para");
email.setSubject("Assunto");
email.setMsg("mensagem do email...)");
email.send();
Simples não?
[]'s
** ops esqueci a fonte hehe
http://commons.apache.org/email/
Falaa ArthurTurtle,
Cara não tive tempo em reportar aqui a solução, estou utilizando a mesma solução q vc acabou de propor, e estava faltando justamente esse jar que postou…ao inserir os erros foram resolvidos e a aplicação funcionou perfeitamente…
Mto obrigado pelo contato…
Vlw man…
ei pessoal estou com um problema muito estranho
segui esse tuto:
na primeira vez que tentei deu certo ai eu coloquei na minha aplicação real
não mudei nenhuma virgula, mas dá esse erro:
e ai o que acham que é?
Grave: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
at org.apache.commons.mail.Email.send(Email.java:1267)
at email.EmailUtil.enviaEmail(EmailUtil.java:40)
at email.EmailMB.enviaEmail(EmailMB.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
at com.sun.el.parser.AstValue.invoke(AstValue.java:248)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at sun.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:323)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:321)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:356)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:212)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1535)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:88)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:196)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:88)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:196)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
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:1232)
… 68 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
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 java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
… 75 more
amigo segue abaixo exemplo que utilizo e funciona:
package br.com.l2pog.util;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class MailService {
private final static String userAuthentication = "exemplo@gmail.com";
private final static String passwordUserAuthentication = "123456";
private final static String sender = "STAFF@L2POG.COM.BR";
private final static String smtp = "smtp.gmail.com";
private final static boolean authentication = true;
public static void sendMail(String message, String subject, String receiver)
throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName(smtp);
email.setAuthentication(userAuthentication, passwordUserAuthentication);
email.setSSL(authentication);
email.addTo(receiver);
email.setFrom(sender);
email.setSubject(subject);
email.setMsg(message);
email.send();
email = null;
}
}
PESSOAL … COPIEI este código aqui na web e o adaptei para tentar o meu primeiro uso de envio de email pelo sistema. Porém sempre dá erro na porta
Enviando ...
Exception in thread "main" msg de erro: Could not connect to SMTP host: smtp.gmail.com, port: 587
java.lang.RuntimeException
at br.gov.sp.guarulhos.letrando.utils.Teste.main(Teste.java:63)
até tentei com a porta 465, também deu erro
tentei pelo meu email do hotmail, também não dá.
package br.com.sistema.utils;
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.commons.mail.EmailException;
public class Teste {
public Teste() {
}
public static void main(String [] args)throws EmailException {
final String username="email-de-autenticacao";
final String password="senha-do-email-de-autenticacao";
Properties prop=new Properties();
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.starttls.enable", "true");
Session session = Session.getDefaultInstance(prop,new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
String body="Dear Renish Khunt Welcome";
String htmlBody = "<strong>This is an HTML Message</strong>";
String textBody = "This is a Text Message.";
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("email-de-envio"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("email-recebedor"));
message.setSubject("Testing Subject");
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);
message.setText(htmlBody);
message.setContent(textBody, "text/html");
System.out.println("Enviando ...");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
System.out.println("msg de erro: "+e.getMessage());
throw new RuntimeException();
}
}
}
[quote=gambazinho]amigo segue abaixo exemplo que utilizo e funciona:
[code]
package br.com.l2pog.util;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class MailService {
private final static String userAuthentication = "exemplo@gmail.com";
private final static String passwordUserAuthentication = “123456”;
private final static String sender = “STAFF@L2POG.COM.BR”;
private final static String smtp = “smtp.gmail.com”;
private final static boolean authentication = true;
public static void sendMail(String message, String subject, String receiver)
throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName(smtp);
email.setAuthentication(userAuthentication, passwordUserAuthentication);
email.setSSL(authentication);
email.addTo(receiver);
email.setFrom(sender);
email.setSubject(subject);
email.setMsg(message);
email.send();
email = null;
}
}
[/code][/quote]
Amigo da um erro na hora de executar, tem alguma particularidade ?
Abraço
O Script do Elvis Fabiane funcionou para mim, belezinha. Somente precisei setar o parâm charset -> email.setCharset(“UTF-8”) por questão de codificação mesmo. Obrigado