para enviar email voce precisa:
-
das 3 classe listadas abaixo
-
configura Bean indexControle no faces Config
-
inserir no diretorio lib da aplicacao os 2 jar q vou enviar pro teu email. mail_1.4.1.jar e
activation_1.1.jar
-
criar uma pagina como a abaixo para incluir dados da mensagem e rodar a aplicao
alimentar os campos e enviar mensagem
obs que na classe emailUtils voce vai ter q colocar os dados de seu email para poder enviar.
para saber: fiz com eclipse+jsf1.2+richfaces servidor tomcat 6.0 mais.
mais nao precisa do rich faces para fazer é so pegar a logica ta tudo ai.
depois voce vair ter q adaptar a tua necessidade
qualquer duvida pergunta de enviar email
codigo da pagina.
observe as linhas onde tem indexControle que voce vai pegar a logica apartir dela.
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:a4j=“http://richfaces.org/a4j”
xmlns:rich=“http://richfaces.org/rich”
template=“template/template.xhtml”>
<ui:define name="pag">
<div id="pagina">
<div class="contentleft">
<h2>Fale Conosco</h2>
<br/>
<div class="contentleftbox">
<rich:panel id="outputPanelMail" style="width: 500px">
<f:facet name="header">Enviar Mensagem para WSOMUS</f:facet>
<h:form>
<!-- inserir campos Nome* Email* Telefone para enviar mensagem-->
<h:messages/>
<h:panelGrid columns="2">
<h:outputText value="Para: "/>
<h:inputText value="#{indexControle.mensagem.destino}" size="66"/>
<h:outputText value="Título: "/>
<h:inputText value="#{indexControle.mensagem.titulo}" size="66"/>
<h:outputText value="Mensagem: "/>
<h:inputTextarea value="#{indexControle.mensagem.mensagem}" cols="63" style="width:352px" rows="10" />
</h:panelGrid>
<h:commandButton
value="Enviar e-mail"
type="submit"
action="#{indexControle.enviaEmail}" id="enviar" />
<h:commandButton
value="Limpar campos"
type="submit"
action="#{indexControle.limpaCampos}" />
</h:form>
</rich:panel>
</div>
</div>
</div>
</ui:define>
</ui:composition>
faces-config
<!-- Gerencia o Contato -->
<managed-bean>
<managed-bean-name>indexControle</managed-bean-name>
<managed-bean-class>br.com.wsomus.controle.IndexControle</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
Classe IndexControle para enviar email
/*
-
Para verificar erros no envio da mensagem dizemos
que o método poderá lançar uma exceção EmailException
e que o método que utilizá-lo deverá trata-lo, no nosso caso trataremos no controller.
Veja na classe IndexController.java
Através do método enviaEmail() nós chamamos o método
enviaEmail(Mensagem mensagem) da classe EmailUtils.java e tratamos a Exceção lançada
-
*/
package br.com.wsomus.controle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import javax.faces.application.FacesMessage;
import org.apache.commons.mail.EmailException;
import br.com.wsomus.model.Mensagem;
import br.com.wsomus.util.EmailUtils;
public class IndexControle {
private Mensagem mensagem = new Mensagem();
public Mensagem getMensagem() {
return mensagem;
}
public void setMensagem(Mensagem mensagem) {
this.mensagem = mensagem;
}
public void enviaEmail() {
try {
} catch (EmailException ex) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro! Occoreu um erro ao enviar a mensagem.", "Erro"));
Logger.getLogger(IndexControle.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void limpaCampos() {
mensagem = new Mensagem();
}
}
classe Mensagem usada na classe indexControle
package br.com.wsomus.model;
//para enviar email título, a mensagem e o e-mail do destinatário
public class Mensagem {
private String destino;
private String titulo;
private String mensagem;
public String getDestino() {
return destino;
}
public void setDestino(String destino) {
this.destino = destino;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
classe email EmailUtils usada na classe indexControle
//import br.edu.ifrr.cob.email.bean.EmailBean;
/*
- Como vocês observam, acima coloquei quatro constantes,
- uma para usuario, outra senha, outra endereço do servidor smtp,
- outra onde você indicará o seu e-mail.
Criamos também dois métodos estáticos, para
acessarmos sem precisar instanciar a classe.
O método conectaEmail() conecta-se ao servidor
de e-mail e retorna um objeto do tipo Email.
No método enviaEmail() preenchemos o objeto Email
com os dados do objeto Mensagem, que são passados como parâmetro,
e depois chamamos o método email.send() para enviar o e-mail.
- */
package br.com.wsomus.util;
import br.com.wsomus.model.Mensagem;
import javax.faces.context.FacesContext;
import javax.faces.application.FacesMessage;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class EmailUtils {
//neste caso usei a conta do meu gmail para enviar
private static final String HOSTNAME = "smtp.gmail.com";
//nome do usuario do meu email do gmail
private static final String USERNAME = "elanodahora";
//minha senha q nao e essa por isso voce tem q definir a da sua conta
private static final String PASSWORD = "senha";
//email de origem q no caso é o meu email
private static final String EMAILORIGEM = "[email removido]";
public static Email conectaEmail() throws EmailException {
Email email = new SimpleEmail();
email.setHostName(HOSTNAME);
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator(USERNAME, PASSWORD));
email.setTLS(true);
email.setFrom(EMAILORIGEM);
return email;
}
public static void enviaEmail(Mensagem mensagem) throws EmailException {
Email email = new SimpleEmail();
email = conectaEmail();
email.setSubject(mensagem.getTitulo());
email.setMsg(mensagem.getMensagem());
email.addTo(mensagem.getDestino());
String resposta = email.send();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "E-mail enviado com sucesso para: " + mensagem.getDestino(), "Informação"));
}
}