Friday, October 19, 2012

Enviando email através de webservices


Vou demonstrar neste post um exemplo de aplicação ASP.NET MVC que permite o envio de emails a partir de servidores SMTP previamente cadastrados no sistema.

O interessante desta aplicação é que vamos tirar a responsabilidade do envio de email da aplicação web e transferi-la para serviços WCF, que utilizam o mesmo modelo de domínio da aplicação. Misturando DDD e SOA, o sistema adota alguns padrões conhecidos como o Repository, Unity of Work, Abstract Factory, REST...

A topologia da arquitetura é demonstrada abaixo :



  • Presentation Layers:  Camadas responsáveis pela interface com o usuário.
  • Application Control Layer: Camada responsável por fazer a ponte entre as camadas de apresentação e a camada de serviços, delegando o trabalho solicitado pelo usuário aos serviços necessários.
  • Services Layer:  Realiza o trabalho de fato. Dividida em duas camadas que possuem a mesma finalidade, porém são implementadas de maneira diferentes. (SOAP x REST)
  • Data Access Layer: Responsável pela persistência de dados.
  • Domain Model Layer: Responsável pela definição dos objetos e regras de negócio do domínio. Possui as entidades mapeadas abaixo:



Resumo do código para envio de email:

1 - Presentation Layer (Web):

2 - Application Control Layer:

3 - Services Layer:

4 - Domain Model Layer (Entidade Mensagem):



Para acessar o sistema web e simular o envio de mensagens, use o link:
http://comprasonline.intcom.com.br/LogIn/
Para o login use email = teste@intcom.com.br e senha = teste


Para download dos arquivos da solução, use o link:
http://comprasonline.intcom.com.br/EmailServicesSample.rar

(Necessários: Visual Studio 2010, ASP NET MVC 3 e Sql Server Compact Edition - O URL estranho é devido a falta de tempo para registrar subdomínios)

No comments:

Post a Comment