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.*
1º 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
2º Abrir a consola de configuração de Wildfly
http://localhost:9990/ ou o IP/DNS do vosso servidor http://omeuservidor:9990/
3º Abrir o menu Configuration e no Menu Connector (expandir) e escolher MAIL
4º 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"
5º 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
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
7º 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 >
smtp-port: 465
Hoje vou descrever passo a passo o processo de configuração do serviço de envio de email's no Servidor Aplicacional Wildfly 8.*
1º 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
2º Abrir a consola de configuração de Wildfly
http://localhost:9990/ ou o IP/DNS do vosso servidor http://omeuservidor:9990/
3º Abrir o menu Configuration e no Menu Connector (expandir) e escolher MAIL
4º 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"
Para configurar o recurso carregamos no VIEW > correspondente ao novo recurso criado
2º fase de configuração
6º Carregar no botão ADD e preencher com os dados de autenticação do servidor de Email e carregar em Save
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
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.comsmtp-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
Enviar um comentário