Enviar e-mail JSF

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