Avançar para o conteúdo principal

Configuração de Serviço de Email no WildFly e Spike em Java EE para envio de emails

Olá a todos

Hoje vou descrever passo a passo o processo de configuração do serviço de envio de email's no Servidor Aplicacional Wildfly 8.*

Devemos ter uma conta de email. No nosso exemplo vamos usar uma conta ficticia que estaria alojada num servidor da Google (GMAIL)

Dados da conta
username: omeuemail@gmail.com
smtp-server: smtp.gmail.com
smtp-port: 465
use-ssl: yes

Abrir a consola de configuração de Wildfly

http://localhost:9990/ ou o IP/DNS do vosso servidor http://omeuservidor:9990/

Abrir o menu Configuration e no Menu Connector (expandir) e escolher MAIL


Clicar na operação ADD e preencher o nome que queremos dar ao recurso e carregar em SAVE

INFO: Aconselha-se o uso da convenção "java:jboss/mail/nomedaapplicaçao"




O processo de configuração nesta fase é feito em duas partes (1º parte criação do recurso) 2º parte configuração do recurso.
Para configurar o recurso carregamos no VIEW > correspondente ao novo recurso criado



2º fase de configuração



Carregar no botão ADD e preencher com os dados de autenticação do servidor de Email e carregar em Save

Para a nossa configuração de exemplo vamos usar:

username: omeuemail@gmail.com
password: omeusegredo
use-ssl: yes

O Campo Socket Binding será usado para "ligar" o Socket Email que vamos criar mais à frente, esta ligação é feita através da comparação de nomes, por isso é aconselhável usar nomes sem espaços e sem caracteres especiais.

No exemplo vamos usar  mymail-smtp



  Terminada a configuração de Autenticação vamos criar o Socket

No menu lateral na Secção General Configuration escolhemos o Socket Binding, depois na listagem de Socket Binding Groups carregamos em VIEW >



Já no modo de visualização escolhemos a categoria Outbound Remote


Aqui podemos ver já um exemplo de um Socket, vamos deixar como está e vamos criar o nosso próprio Socket utilizando como nome o Socket Binding utilizado no passo de Configuração "mymail-smtp".  Vamos então carregar em ADD e preencher com os dados de ligação do servidor de email.

No nosso exemplo os dados são:
smtp-server: smtp.gmail.com
smtp-port: 465


Carregamos no Save mais acima e depois novamente em Save



E tá feito :), temos o serviço de email configurado, basta agora reiniciar o servidor Wildfly para que as configuração fiquem activas.



Dica: para reiniciar o servidor Menu Runtime e carregar em Reload



JAVA EE


Ok, agora que temos tudo a funcionar deixo aqui um exemplo de código para enviar emails simples.

Dicas: para quem usa Maven (http://mvnrepository.com) devem colocar as seguinte dependências no ficheiro pom.xml

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>

<!--Logger-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>\
</dependency>


Código Java, Envio de Email's simples  (JAVA EE)




import javax.annotation.Resource;
import javax.ejb.Asynchronous;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/** * Created by BrunoHorta on 07/12/14. */
@Stateless@LocalBeanpublic class EmailBean {

    private static final Logger log = LoggerFactory.getLogger(EmailBean.class); //Opcional apenas para log
    
    @Resource(lookup = "java:jboss/mail/AMINHAAPP") //Nome do Recurso que criamos no Wildfly

    private Session mailSession; //Objecto que vai reprensentar uma sessão de email
    public EmailBean() {
    }

    @Asynchronous //Metodo Assíncrono para que a aplicação continue normalmente sem ficar bloqueada até que o email seja enviado    
public void sendEmail(String to, String from, String subject, String content) {

        log.info("Email enviado por " + from + " para " + to + " : " + subject);
        try {
           //Criação de uma mensagem simples
            Message message = new MimeMessage(mailSession);
            //Cabeçalho do Email
            message.setFrom(new InternetAddress(from));
            message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));            
            message.setSubject(subject);
            //Corpo do email
            message.setText(content);

            //Envio da mensagem            
            Transport.send(message);
            log.debug("Email enviado");
        } catch (MessagingException e) {
            log.error("Erro a enviar o email : " + e.getMessage());        }
    }
}



Espero ter ajudado :)

Alguma duvida é só publicarem.

Um Grande Abraço a todos 

brunohorta@2014





Comentários

Mensagens populares deste blogue

3 Formas de configurar o Wi-Fi no ESP8266

3 Formas de  configurar o Wi-Fi no ESP8266 O nosso famoso ESP8266 veio para ficar, cada vez mais este microcontrolador é utilizado para desenvolver dispositivos fantásticos, é verdade que o ESP pode ser utilizado como um simples MCU , mas é a sua capacidade de se ligar a uma rede Wi-Fi, faz dele a escolha perfeita no que toca dipositivos IoT . Este artigo tem foco em três diferentes soluções que permitem programar o ESP de forma a que este se consiga ligar a uma rede Wi-Fi. É sabido que da primeira vez que o ESP é energizado este tem de conhecer ou vir a conhecer o SSID e a Password configurada no Access Point ao qual o queremos conectar de forma a fazer para da rede e ter acesso à Internet se assim for necessário. Vamos então ver como implementar as três soluções, analisar cada uma delas e ponderar os prós e contras e cada uma delas. Passemos ao caso mais simples, ao qual denomino de “Hard Coded” , esta é a forma mais utilizada por quem começa a utilizar

Mosquitto MQTT - Como Apagar todas as Mensagem Retain

Olá malta, hoje venho partilhar convosco algo que pode dar muito jeito quando andamos a testar cenários em que temos mensagens MQTT Retained . Um mensagem com a Flag Retain fica guardada no Broker MQTT até que seja subscrita por outra . Uma solução rápida para eliminar a mensagem Retain será publicar no mesmo tópico uma mensagem vazia , no entanto se tivermos muitos tópicos com mensagens Retain pode dar muito trabalho por isso uma forma simples será eliminar a base de dados do Mosquitto e todas as mensagem Retain são perdidas. Este cenário pode parecer uma pouco Brute Force mas se pensar-mos bem, assim que os nossos sensores/atuadores se ligarem novamente ao Broker MQTT vão publicar novamente a mensagem Retain que realmente interessa :) Procedimento sudo service mosquitto stop sudo rm /var/lib/mosquitto/ mosquitto.db sudo service mosquitto start DONE.... Espero ter ajudado :) Grande Abraço

Instalação do SQLPLUS da ORACLE em LINUX

Bom dia a todos Hoje vou explicar como podemos instalar o SQLPLUS da Oracle em sistemas Linux que utilizem gestão de pacotes RPM, entre eles CENTOS, FEDORA etc.. O SQLPLUS é uma excelente ferramenta de administração de SGDB da Oracle e apresenta-se sob o formato de linha de comandos o que permite aos Administradores de Base de Dados um maior poder sobre o SGDB. Antes de mais é necessário ter uma conta Oracle, esta pode ser feita atraves de um registo no site e é totalmente gratuito. Após termos conta devemos ir à secção de Download -> Databases -> Oracle Instant Client URL:   http://www.oracle.com/technetwork/indexes/downloads/index.html É apresentada uma lista sistemas operativos suportados e no nosso caso vamos escolher    Instant Client for Linux x86-64   para versões 64 Bits Ao escolhermos o Sistema Operativo a Oracle mostra-nos todas aplicações de Cliente para as diversas versões de Base de dados. A ultima versão é a 12 no entanto devemos fazer o downl