Help - Já procurei e não achei

5 respostas
A

Bom dia!

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

package email;

import java.net.MalformedURLException;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class CommonsMail {

    public CommonsMail() throws EmailException, MalformedURLException {
        enviaEmailSimples();
    //enviaEmailComAnexo();
    //enviaEmailFormatoHtml();
    }

    public void enviaEmailSimples() throws EmailException {

        SimpleEmail email = new SimpleEmail();
        email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do e-mail
        email.addTo("[email removido]", "Usuario"); //destinatário
        email.setFrom("[email removido]", "Eu"); // remetente
        email.setSubject("Teste -> Email simples"); // assunto do e-mail
        email.setMsg("Teste de Email utilizando commons-email"); //conteudo do e-mail
        email.setAuthentication("[email removido]", "XXXX");
        email.setSmtpPort(465);
        email.setSSL(true);
        email.setTLS(true);
        email.send();
    }

    public static void main(String[] args) throws EmailException, MalformedURLException {
        new CommonsMail();
    }
}

Este codigo funciona perfeitamente, agora como faço para adapta-lo ao jsf

5 Respostas

renanreismartins

num action de um managed bean vc instancia sua classe e chama seu metodo, como se fosse o metodo main

abrasssss

A

sem querer abusar vc poderia me dar um exemplo.

desde ja vlw

renanreismartins

no seu MB:

public String enviaEmail() {
    CommonsMail new commonsMail = new CommonsMail(); // aqui ele chama seu construtor padrao que ja envia o email
     return "emailEnviado"; // e aqui ele redireciona a pagina
}
A

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">
<html 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"
      >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Email de Contato</title>
        <link href="./css/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <h:form>
            <h:messages globalOnly="true" style="color:red"/>
            <fieldset>
                <legend>Fale Conosco</legend>

                <span jsfc="h:messages" globalOnly="true">
                </span>
                <br />
                <label jsfc="h:outputLabel" for="nome">Nome *:</label>
                <input jsfc="h:inputText" type="text" id="nome"
                       value="#{EnviarEmail.nome}"
                       styleClass="field" required="true" size="25"
                       requiredMessage="*" />
                <span jsfc="h:message" for="nome" styleClass="msg"></span>
                <br />
                <label jsfc="h:outputLabel" for="email">E-mail *:</label>
                <input jsfc="h:inputText" type="text" id="email"
                       value="#{EnviarEmail.mail}"
                       styleClass="field" required="true" size="25"
                       requiredMessage="*" />
                <span jsfc="h:message" for="email" styleClass="msg"></span>

                <br />
                <label jsfc="h:outputLabel" for="assunto">Assunto *:</label>
                <input jsfc="h:inputText" type="text" id="assunto"
                       value="#{EnviarEmail.assunto}"
                       styleClass="field" required="true" size="25"
                       requiredMessage="*" />
                <span jsfc="h:message" for="assunto" styleClass="msg"></span>
                <br />
                <label jsfc="h:outputLabel" for="mensagem">Mensagem *:</label>
                <textarea jsfc="h:inputTextarea" cols="20" rows="5"
                          type="text" id="mensagem"
                          value="#{EnviarEmail.corpoMensagem}"
                          styleClass="field" required="true" size="9"
                          requiredMessage="*">
                </textarea>
                <span jsfc="h:message" for="mensagem" styleClass="msg"></span>
                <br />
                <span>Todos os campos com * são obrigatórios</span>
                <br />
                <br />
                <input jsfc="h:commandButton" type="submit"
                       action="#{EnviarEmail.enviaEmail}"
                       id="confirmar" value="Confirmar"/>
            </fieldset>
        </h:form>
    </body>
</html>

EnviarEmail.java

package ade.managedbeans;

import java.net.MalformedURLException;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

public class EnviarEmail {

    private String nome;
    private String mail;
    private String assunto;
    private String corpoMensagem;

    public EnviarEmail() throws EmailException,
            MalformedURLException {
        enviaEmailHtml();
    }

    public void enviaEmailHtml() throws EmailException {

        HtmlEmail email = new HtmlEmail();
        //O servidor SMTP para envio do e-mail
        email.setHostName("smtp.gmail.com");
        //Destinatário
        email.addTo("[email removido]", "xxx");
        //Remetente
        email.setFrom("[email removido]", "xxx");
        //Assunto do e-mail
        email.setSubject("Mensagem");
        //Conteudo do e-mail
        email.setMsg("O envio de e-mail no formato <b>HTML</b><br/><br /> pode ser feito com a classe <b>HtmlEmail</b>.");
        //Autenticação
        email.setAuthentication("xxxx", "xxxx");
        email.setSmtpPort(465);
        email.setSSL(true);
        email.setTLS(true);
        email.send();
    }

    public String enviaEmail() throws EmailException, MalformedURLException {
        //Aqui ele chama seu construtor padrao que ja envia o email
        EnviarEmail enviarEmail = new EnviarEmail();
        //E aqui ele redireciona a pagina
        return "emailEnviado";
    }

    public static void main(String[] args) throws EmailException, MalformedURLException {
        new EnviarEmail();
    }

    public String getAssunto() {
        return assunto;
    }

    public void setAssunto(String assunto) {
        this.assunto = assunto;
    }

    public String getCorpoMensagem() {
        return corpoMensagem;
    }

    public void setCorpoMensagem(String corpoMensagem) {
        this.corpoMensagem = corpoMensagem;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        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”

bons estudos…

abrassssss

Criado 24 de novembro de 2009
Ultima resposta 25 de nov. de 2009
Respostas 5
Participantes 2