Estou desenvolvendo minha primeira aplicação web utilizando o jsf e gostaria de fazer um formulario de contato.
ja fiz exemplos utilizando a biblioteca commons Email para desktop, alguém poderia me ajudar ou indicar onde acho algo que eu possa seguir
o codigo q eu utilizo é este
packageemail;importjava.net.MalformedURLException;importorg.apache.commons.mail.EmailException;importorg.apache.commons.mail.SimpleEmail;publicclassCommonsMail{publicCommonsMail()throwsEmailException,MalformedURLException{enviaEmailSimples();//enviaEmailComAnexo();//enviaEmailFormatoHtml();}publicvoidenviaEmailSimples()throwsEmailException{SimpleEmailemail=newSimpleEmail();email.setHostName("smtp.gmail.com");// o servidor SMTP para envio do e-mailemail.addTo("[email removido]","Usuario");//destinatárioemail.setFrom("[email removido]","Eu");// remetenteemail.setSubject("Teste -> Email simples");// assunto do e-mailemail.setMsg("Teste de Email utilizando commons-email");//conteudo do e-mailemail.setAuthentication("[email removido]","XXXX");email.setSmtpPort(465);email.setSSL(true);email.setTLS(true);email.send();}publicstaticvoidmain(String[]args)throwsEmailException,MalformedURLException{newCommonsMail();}}
Este codigo funciona perfeitamente, agora como faço para adapta-lo ao jsf
Primeiramente quero agradecer ao renanreismartins pelo ajuda.
e gostaria de pedir outra ajuda estou implementando a rotina com um form, agora quero pegar as informações digitas e envia-las via email segue a pagina e o código managedbeans
contato.xhtml
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="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"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title>Email de Contato</title><linkhref="./css/style.css"rel="stylesheet"type="text/css"/></head><body><h:form><h:messagesglobalOnly="true"style="color:red"/><fieldset><legend>Fale Conosco</legend><spanjsfc="h:messages"globalOnly="true"></span><br/><labeljsfc="h:outputLabel"for="nome">Nome *:</label><inputjsfc="h:inputText"type="text"id="nome"value="#{EnviarEmail.nome}"styleClass="field"required="true"size="25"requiredMessage="*"/><spanjsfc="h:message"for="nome"styleClass="msg"></span><br/><labeljsfc="h:outputLabel"for="email">E-mail *:</label><inputjsfc="h:inputText"type="text"id="email"value="#{EnviarEmail.mail}"styleClass="field"required="true"size="25"requiredMessage="*"/><spanjsfc="h:message"for="email"styleClass="msg"></span><br/><labeljsfc="h:outputLabel"for="assunto">Assunto *:</label><inputjsfc="h:inputText"type="text"id="assunto"value="#{EnviarEmail.assunto}"styleClass="field"required="true"size="25"requiredMessage="*"/><spanjsfc="h:message"for="assunto"styleClass="msg"></span><br/><labeljsfc="h:outputLabel"for="mensagem">Mensagem *:</label><textareajsfc="h:inputTextarea"cols="20"rows="5"type="text"id="mensagem"value="#{EnviarEmail.corpoMensagem}"styleClass="field"required="true"size="9"requiredMessage="*"></textarea><spanjsfc="h:message"for="mensagem"styleClass="msg"></span><br/><span>Todos os campos com * são obrigatórios</span><br/><br/><inputjsfc="h:commandButton"type="submit"action="#{EnviarEmail.enviaEmail}"id="confirmar"value="Confirmar"/></fieldset></h:form></body></html>
EnviarEmail.java
packageade.managedbeans;importjava.net.MalformedURLException;importorg.apache.commons.mail.EmailException;importorg.apache.commons.mail.HtmlEmail;publicclassEnviarEmail{privateStringnome;privateStringmail;privateStringassunto;privateStringcorpoMensagem;publicEnviarEmail()throwsEmailException,MalformedURLException{enviaEmailHtml();}publicvoidenviaEmailHtml()throwsEmailException{HtmlEmailemail=newHtmlEmail();//O servidor SMTP para envio do e-mailemail.setHostName("smtp.gmail.com");//Destinatárioemail.addTo("[email removido]","xxx");//Remetenteemail.setFrom("[email removido]","xxx");//Assunto do e-mailemail.setSubject("Mensagem");//Conteudo do e-mailemail.setMsg("O envio de e-mail no formato <b>HTML</b><br/><br /> pode ser feito com a classe <b>HtmlEmail</b>.");//Autenticaçãoemail.setAuthentication("xxxx","xxxx");email.setSmtpPort(465);email.setSSL(true);email.setTLS(true);email.send();}publicStringenviaEmail()throwsEmailException,MalformedURLException{//Aqui ele chama seu construtor padrao que ja envia o emailEnviarEmailenviarEmail=newEnviarEmail();//E aqui ele redireciona a paginareturn"emailEnviado";}publicstaticvoidmain(String[]args)throwsEmailException,MalformedURLException{newEnviarEmail();}publicStringgetAssunto(){returnassunto;}publicvoidsetAssunto(Stringassunto){this.assunto=assunto;}publicStringgetCorpoMensagem(){returncorpoMensagem;}publicvoidsetCorpoMensagem(StringcorpoMensagem){this.corpoMensagem=corpoMensagem;}publicStringgetMail(){returnmail;}publicvoidsetMail(Stringmail){this.mail=mail;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}
renanreismartins
amigo aconselho vc estudar orientação a objetos primeiro, parece que lhe falta uma boa base no assunto.
vc nao necessita mais do metodo main, pode deixar o construtor do seu mb vazio, no botao que aciona o envio do email chame o metodo enviaEmailHtml()
e no metodo passe para seu obj HtmlEmail os valores corretos pegos pelo seu mb. Ex:
email.setMsg(this.corpoMensagem);
tambem seja mais detalhista no titulo do topico nao coloque titulos que nao ajudam em nada, coloque coisas explicando seu problema ex: “envio de email com jsf”