Enviar e-mail JSF

10 respostas
J

Pessoal como faço para enviar e-mail através do JSF?
Se possível me informar algum exemplo, tutorial.
Obrigado.

10 Respostas

JavaFXMan

Aqui tem um exemplo completinho: http://benignosales.wordpress.com/2010/11/18/jsf-2-0-enviando-e-mail-com-commons-mail/

J

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.

Ace

Java_Terminator,
Vou ressucitar o tópico, vc conseguiu implementar sem problemas?
pois segui como dizia no forum e me deram alguns erros

vlw

ArthurTurtle

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/

Ace

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…

jaissonduarte

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 : <a href="http://smtp.gmail.com:587">smtp.gmail.com:587</a>

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: <a href="http://smtp.gmail.com">smtp.gmail.com</a>, 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
G

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 = "[email removido]";
	private final static String passwordUserAuthentication = "123456";
	private final static String sender = "[email removido]";
	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;
	}
}
P

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();
      }		
	}	
	
}
E
gambazinho:
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 = "[email removido]";
	private final static String passwordUserAuthentication = "123456";
	private final static String sender = "[email removido]";
	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;
	}
}

Amigo da um erro na hora de executar, tem alguma particularidade ?

Abraço

P

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

Criado 13 de fevereiro de 2011
Ultima resposta 26 de jul. de 2013
Respostas 10
Participantes 8