C# - Enviando emails com SendGrid
No artigo de hoje vou mostrar como podemos usar a API do SendGrid para enviar emails em uma aplicação Windows Forms usando a linguagem C#. |
A SendGrid, empresa norte-americana de serviço de gerenciamento de e-mails, opera no Brasil desde 2012 e oferece infraestrutura de e-mails na nuvem, com suporte 24 horas e oferta de serviços adicionais, como relatórios de métricas para acompanhamento de desempenho.
Os serviços são vendidos em pacotes que variam, em valores, de US$ 0,10 por mil
e-mails a US$ 399,95 por mês, dependendo dos recursos contratados.
Atualmente existem 3 tipos de pacotes :
Para ver mais detalhes consulte o link : SendGrid® - Sendgrid.com
O que interessa é que você pode se cadastrar como usuário no pacote gratuito e usar o serviço da SendGrid em sua aplicação C#. Depois se realmente você precisar e achar que o serviço te atende pode assinar um plano pago.
Para criar um usuário e uma senha que serão necessários para podermos enviar email acesse o link: https://sendgrid.com/ e clique no botão Try for Free.
A seguir faça o registro preenchendo o formulário mostrado abaixo:
Ao final você deverá ter um usuário e senha cadastrados no SendGrid.
A seguir vou mostrar um exemplo de como podemos enviar emails usando a API do SendGrid usando a linguagem C#.
Recursos usados:
Criando o projeto no VS 2013
Então abra o VS 2013 Express for Windows desktop e clique em New Project;
Selecione a linguagem C# e o template Windows Forms Application e informe o nome EnviandoEmails-SendGrid;
A seguir a partir da ToolBox inclua os seguintes controles no formulário form1.cs :
GroupBox - Origem/Destino
3 Labels
3 TextBox - txtOrigem, textDestino, txtAssunto
GroupBox - Mensagem
TextBox - txtMensagem , Multiline=True
2 Buttons - btnCancelar e btnEnviar
Disponha os controles conforme o leiaute da figura abaixo:
Clique no menu TOOLS e a seguir em Nuget Package Manager -> Package Manage Console :
Na janela do Console digite o comando para incluir a library SendGrid no projeto: Install-Package SendGrid
Você também pode instalar da seguinte forma:
Clique no menu TOOLS e a seguir em Nuget Package Manager -> Manage Nuget Package for Solution :
A seguir Informe na caixa de busca o nome send grid e após o pacote ser localizado clique no botão Install:
Vamos criar a classe Email no projeto para representar um email.
No menu PROJECT clique em Add Class e informe o nome Email.cs.
A seguir digite o seguinte código nesta classe :
namespace EnviandoEmails_SendGrid
{
public class Email
{
public string origem { get; set; }
public string destino { get; set; }
public string assunto { get; set; }
public string mensagem { get; set; }
public string usuario { get; set; }
public string senha { get; set; }
}
}
|
Agora vamos criar a classe EnviarEmail onde iremos usar os recursos da API SendGrid para enviar o email.
No menu PROJECT clique em Add Class e informe o nome EnviarEmail.cs.
A seguir digite o seguinte código nesta classe :
using System;
using System.Net;
using System.Net.Mail;
using SendGrid;
namespace EnviandoEmails_SendGrid
{
public class EnviarEmail
{
public void Enviar(Email _email)
{
try
{
/* Cria a mensagem de email
* ===================================================*/
var minhaMensagemEmail = new SendGridMessage();
minhaMensagemEmail.AddTo(_email.destino);
minhaMensagemEmail.From = new MailAddress(_email.origem);
minhaMensagemEmail.Subject = _email.assunto;
minhaMensagemEmail.Text = _email.mensagem;
/* Envia a menssasgem
* ===================================================*/
var credentials = new NetworkCredential(_email.usuario, _email.senha);
// Cria um transporte web para enviar email
var transporteWeb = new Web(credentials);
// Enviar email
transporteWeb.DeliverAsync(minhaMensagemEmail);
}
catch (Exception)
{
throw;
}
}
}
}
|
O código acima cria um instância da classe SendGridMessage() , atribui os valores referente aos dados do email, define as credenciais do usuário e envia o email.
A seguir para usar a classe vamos definir o código abaixo no evento Click do botão de comando Enviar o do formulário form1.cs :
using System;
using System.Windows.Forms;
namespace EnviandoEmails_SendGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnEnviar_Click(object sender, EventArgs e)
{
try
{
Email email = new Email();
email.origem = txtOrigem.Text;
email.destino = txtDestino.Text;
email.assunto = txtAssunto.Text;
email.mensagem = txtMensagem.Text;
//aqui você informa seu usuário e senha no SendGrid
email.usuario = "*********";
email.senha = "********";
EnviarEmail mandaEmail = new EnviarEmail();
mandaEmail.Enviar(email);
MessageBox.Show("Email enviado com sucesso", "Email enviado", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exception ex)
{
MessageBox.Show("Erro :" + ex.Message, "Erro ao enviar Email", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
|
O código cria um objeto email do tipo Email e passa as informações do email para o objeto. A seguir usamos o método Enviar da classe EnviarEmail passando o objeto email com as informações do email a ser enviado.
Executando o projeto informando os dados do email e clicando no botão Enviar, iremos obter o seguinte resultado:
Verificando a atividade da conta no SendGrid veremos os emails enviados conforme abaixo: (Enviei dois emails)
Assim usar os recursos do SendGrid em seu projeto C# é muito simples.
Pegue o projeto completo aqui : EnviandoEmails-SendGrid.zip
E,
porque sois filhos, Deus enviou aos vossos corações o Espírito de seu Filho, que
clama: Aba, Pai.
Assim que já não és mais servo, mas filho; e, se és filho, és também herdeiro de
Deus por Cristo.
Gálatas 4:6,7
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: