Neste artigo vou mostrar como enviar emails com Razor Pages na ASP .NET Core 2. |
Na ASP .NET Core 2.0 podemos usar as classes do namespace System.Net.Mail para enviar emails, e, podemos fazer isso usando Razor Pages.
Eu não sei se a sugestão vai ser atendida mas a Microsoft esta recomendando a utilização das Razor Pages para gerar HTML do lado do servidor.
De qualquer forma vamos mostrar como enviar email usando Razor Pages e, para isso vamos definir um modelo de domínio para representar uma mensagem e vamos usar a página Contact que é criada por padrão quando criamos um projeto usando o template Razor Page.
Ao trabalho...
Recursos :
Criando o projeto Razor Pages
Abrindo o VS 2017 e criando um novo projeto teremos as seguinte operações :
Ao clicar no botão OK você obteve o projeto criado com a estrutura de arquivos mostrada na figura abaixo:
Vamos criar uma pasta chamada Model no projeto e nesta pasta criar a classe Mensagem com o código abaixo:
Agora vamos fazer os seguintes ajustes no arquivo Contact.cshtml.cs da pasta Pages.
Incluimos uma uma propriedade do tipo Mensagem com o mesmo nome e renomeamos a propriedade Message para Saudacao.
Observe que a propriedade Mensagem esta decorada com o atributo [BindProperty] o que assegura que ela vai participar do model binding.
Agora vamos alterar o código do arquivo Contact.cshtml para criar um formulário para o envio do email usando tag-helpers.
O formulário é muito simples. Fique à vontade para melhorar este formulário.
A seguir para que a classe Page model seja responsável apenas pelo processamento da entrada e retorno da resposta HTML vamos criar uma pasta Service e nesta pasta criar a interface IEMailService com o código abaixo:
A implementação desta interface será a responsável por enviar o email.
Na mesma pasta crie então a classe SmtpEMailService e defina o código abaixo nesta classe que implementa o método Send da interface:
No código criamos uma instância da classe SmtpClient() do namespace System.Net.Mail que permite enviar emails via SMTP.
Veja detalhes da documentação desta classe neste link: https://docs.microsoft.com/pt-br/dotnet/api/system.net.mail.smtpclient?redirectedfrom=MSDN&view=netframework-4.7.2
Estamos salvando os emails enviados a serem processados pelo servidor SMTP local na pasta c:\dados\email.
Para poder usar o serviço precisamos registrar usando o método ConfigureServices() de forma a usar a instância do serviço no construtor da classe ContactModel:
Finalmente na classe ContactModel vamos injetar uma instância do serviço via injeção de dependência e definir no método OnPost() o envio do email:
O serviço de email é injetado na classe de modelo de página por meio de seu construtor e, em seguida, é atribuído a um campo particular para uso posterior no método do manipulador OnPost.
Executando o projeto e acessando o link Contact iremos acessar o formulário para envio de email:
Após enviar o email verificando a pasta c:\dados\ veremos o email conforme mostra a figura abaixo:
Pegue o projeto completo aqui: RzPg_EnviaEmail.zip
"Como está escrito :
Não há um justo, nem um sequer."
Romanos 3:10
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET Core - Criando uma aplicação com Angular 2 - Macoratti.net
ASP .NET Core - Criando uma aplicação Web no ... - Macoratti.net
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti
ADO .NET - Usando o Micro ORM Dapper - Macoratti
C# - CRUD no SQL Server com Dapper e MetroFramework ... - Macoratti
ASP .NET - Apresentando a sintaxe Razor - Macoratti
ASP .NET Core - Apresentando Razor Pages - Macoratti