SendGrid Ferramenta muito boa para envio de email em massa na Nuvem Azure
Como enviar emails usando o SendGrid com o Azure
Pessoal este procedimento é valido pois no Azure ainda não estão adotando serviços de relay com Exchange Server 2013 pois entra em concorrência com o Office 365.
Eu desenhei várias soluções de office 365 e Exchange 2013 e realmente no Azure é possível adotar solução pronta para envio de email em massa.
Recomendo esta solução e testei este ambiente.
Licença valida para clientes que adoratam as licenças do Azure direto na internet.
OBS: Quem contratou Licenças Enterprise aqui no Brasil com parceiros não é possível utilizar, somente em outra tenant do Azure.
Este guia demonstra como executar tarefas comuns de programação com o serviço de email SendGrid no Windows Azure. Os exemplos são escritos em código C# e utilizam a API .NET. Os cenários abordados incluem a construção de email, envio de email, adição de anexos e o uso de filtros. Para obter mais informações sobre o SendGrid e o envio de emails, consulte a seção Próximas etapas.
O que é o serviço de email SendGrid?
Criar uma conta do SendGrid
Referência à biblioteca de classes do .NET do SendGrid
Como: Criar um email
Como: Enviar um email
Como: Adicionar um anexo
O que é o serviço de email SendGrid?
O SendGrid é um serviço de e-mail baseado em nuvem que oferece entrega de e-mail transacional, escalabilidade e análise em tempo real confiáveis com APIsflexíveis que facilitam a integração personalizada. Os cenários comuns de uso do SendGrid incluem:
-
Envio automático de recibos para os clientes.
-
Administração de listas de distribuição para envio mensal de panfletos eletrônicos e ofertas especiais aos clientes.
-
Coleta de métricas em tempo real para, por exemplo, email bloqueado e capacidade de resposta do cliente.
-
Geração de relatórios para ajudar a identificar as tendências.
-
Encaminhamento de consultas dos clientes.
-
Processamento de emails de entrada.
Para obter mais informações, consulte https://sendgrid.com.
Os clientes do Azure podem desbloquear 25.000 emails livres por mês. Esses 25.000 e-mails mensais gratuitos lhe darão acesso a uma emissão avançada de relatórios e análises e a todas as APIs (Web, SMTP, Evento, Análise, Subsistema de usuário). Para obter informações sobre os serviços adicionais fornecidos por SendGrid, consulte a página Recursos do SendGrid.
Para se inscrever em uma conta do SendGrid
-
Faça logon no Portal de Gerenciamento do Azure.
-
No painel inferior do portal de gerenciamento, clique em Novo.
-
Clique em Marketplace.
-
Na caixa de diálogo Escolher um aplicativo e serviço, selecione SendGrid e clique na seta à direita.
-
Na caixa de diálogo Personalizar aplicativo e serviço, selecione o plano do SendGrid no qual você deseja se inscrever.
-
Digite um nome para identificar o serviço de SendGrid nas suas configurações do Azure ou use o valor padrão deSendGridEmailDelivery.Simplified.SMTPWebAPI. Os nomes devem ter entre 1 e 100 caracteres e conter somente caracteres alfanuméricos, traços, pontos e caracteres de sublinhado. O nome deve ser exclusivo na sua lista de itens inscritos da Azure Store.
-
Escolha um valor para a região; por exemplo, oeste dos Estados Unidos.
-
Clique na seta à direita.
-
Na guia Revisar Compra, revise o plano e as informações sobre preços, bem como os termos legais. Se você concordar com os termos, clique na marca de seleção. Depois que clicar na marca de seleção, sua conta do SendGrid iniciará o processo de provisionamento do SendGrid.
-
Depois de confirmar sua compra, você será redirecionado para o painel de complementos e verá a mensagem Compra de SendGrid.
Sua conta do SendGrid será provisionada imediatamente e você verá a mensagem SendGrid de complemento adquirido com êxito. Sua conta e as credenciais serão criadas agora. Você está pronto para enviar emails neste ponto.
Para modificar o plano de assinatura ou consultar as configurações de contato do SendGrid, clique no nome do serviço do SendGrid para abrir o painel SendGrid Marketplace.
Para enviar um email usando o SendGrid, você deve fornecer suas credenciais de conta (nome de usuário e senha).
Para localizar suas credenciais do SendGrid
-
Clique em Informações de Conexão.
-
Na caixa de diálogo Connection info, copie a Senha e o Nome de usuário para usar neste tutorial posteriormente.
Para definir suas configurações de entrega de email, clique no botão Gerenciar. Isso abrirá a interface da Web do Sendgrid.com, onde você poderá fazer logon e abrir o Painel de Controle do SendGrid.
Para obter mais informações sobre como começar com o SendGrid, consulte Começar com o SendGrid.
Referência à biblioteca de classes do .NET do SendGrid
O pacote NuGet do SendGrid é a maneira mais fácil de obter a API do SendGrid e para configurar seu aplicativo com todas as dependências. O NuGet é uma extensão do Visual Studio incluído com o Microsoft Visual Studio 2012 que facilita a instalação e a atualização de bibliotecas e ferramentas.
OBSERVAÇÃO
Para instalar o NuGet se você estiver executando uma versão do Visual Studio anterior ao Visual Studio 2012, visite http://www.nuget.orge clique em Instalar NuGet .
Para instalar o pacote NuGet do SendGrid no seu aplicativo, faça o seguinte:
-
No Gerenciador de Soluções, clique com o botão direito em Referências e, em seguida, clique em Gerenciar Pacotes NuGet.
-
No painel esquerdo da caixa de diálogo Gerenciar Pacotes NuGet, clique em Online.
-
Procure SendGrid e selecione o item SendGrid na lista de resultados (a versão atual é 5.0.0).
-
Clique em Instalar para concluir a instalação e, em seguida, feche essa caixa de diálogo.
A biblioteca de classes do .NET do SendGrid é denominada SendGridMail. Ela contém os seguintes namespaces:
-
SendGridMail para criar e trabalhar com itens de email.
-
SendGridMail.Transport para enviar email usando o protocolo SMTP ou o protocolo HTTP 1.1 com Web/REST.
Adicione as declarações de namespace de código a seguir à parte superior de qualquer arquivo em que queira acessar o serviço de email SendGrid de forma programada. System.NET e System.Net.Mail são namespaces do .NET Framework que estão incluídos porque eles incluem tipos que você normalmente usará com as API do SendGrid.
using
System;
using
System.Net;
using
System.Net.Mail;
using
SendGrid;
Use o método SendGrid.GetInstance estático para criar uma mensagem de email do tipo SendGrid. Quando a mensagem for criada, você poderá usar as propriedades e os métodos do SendGrid para definir valores incluindo o remetente do email, o destinatário do email e o assunto e o corpo do email.
O exemplo a seguir demonstra como criar um objeto de email totalmente preenchido:
// Create the email object first, then add the properties.
var myMessage = new
SendGridMessage();
// Add the message properties.
myMessage.From = new
MailAddress(“[email protected]”);
// Add multiple addresses to the To field.
List<String> recipients = new
List<String>
{
@“Jeff Smith <[email protected]>”,
@“Anna Lidman <[email protected]>”,
@“Peter Saddow <[email protected]>”
};
myMessage.AddTo(recipients);
myMessage.Subject = “Testing the SendGrid Library”;
//Add the HTML and Text bodies
myMessage.Html = “
Hello World!
“;
myMessage.Text = “Hello World plain text!”;
Para obter mais informações sobre todas as propriedades e métodos com suporte do tipoSendGrid, consulte sendgrid-csharp no GitHub.
Após criar uma mensagem de email, você poderá enviá-la usando a API da Web fornecida pelo SendGrid. Alternativamente, você pode usar a compilação do .NET na biblioteca.
O envio de email requer que você forneça suas credenciais de conta do SendGrid (nome de usuário e senha). O código a seguir demonstra como encapsular suas credenciais em um objeto NetworkCredential:
// Create network credentials to access your SendGrid account
var username = “your_sendgrid_username”;
var pswd = “your_sendgrid_password”;
/* Alternatively, you may store these credentials via your Azure portal
by clicking CONFIGURE and adding the key/value pairs under “app settings”.
Then, you may access them as follows:
var username = System.Environment.GetEnvironmentVariable(“SENDGRID_USER”);
var pswd = System.Environment.GetEnvironmentVariable(“SENDGRID_PASS”);
assuming you named your keys SENDGRID_USER and SENDGRID_PASS */
var credentials = new
NetworkCredential(username, pswd);
Os exemplos a seguir mostram como enviar umamensagem usando a API da Web.
// Create the email object first, then add the properties.
SendGridMessage myMessage = new
SendGridMessage();
myMessage.AddTo(“[email protected]”);
myMessage.From = new
MailAddress(“[email protected]”, “John Smith”);
myMessage.Subject = “Testing the SendGrid Library”;
myMessage.Text = “Hello World!”;
// Create credentials, specifying your user name and password.
var credentials = new
NetworkCredential(“username”, “password”);
// Create an Web transport for sending email.
var transportWeb = new
Web(credentials);
// Send the email.
// You can also use the **DeliverAsync** method, which returns an awaitable task.
transportWeb.Deliver(myMessage);
É possível adicionar anexos a uma mensagem, chamando o método AddAttachmente especificando o nome e o caminho do arquivo que você deseja anexar. Você pode incluir vários anexos chamando esse método uma vez para cada arquivo que deseja anexar. O exemplo a seguir demonstra como adicionar um anexo a uma mensagem:
SendGridMessage myMessage = new
SendGridMessage();
myMessage.AddTo(“[email protected]”);
myMessage.From = new
MailAddress(“[email protected]”, “John Smith”);
myMessage.Subject = “Testing the SendGrid Library”;
myMessage.Text = “Hello World!”;
myMessage.AddAttachment(@“C:\file1.txt”);
Você também pode adicionar anexos a partir do fluxo de dados. Isso pode ser feito ao chamar o mesmo método acima, AddAttachment, mas passando no Fluxo dos dados, e o nome do arquivo que você quer mostrar na mensagem. Nesse caso, você precisará adicionar a biblioteca System.IO.
SendGridMessage myMessage = new
SendGridMessage();
myMessage.AddTo(“[email protected]”);
myMessage.From = new
MailAddress(“[email protected]”, “John Smith”);
myMessage.Subject = “Testing the SendGrid Library”;
myMessage.Text = “Hello World!”;
using (var attachmentFileStream = new
FileStream(@“C:\file.txt”, FileMode.Open))
{
myMessage.AddAttachment(attachmentFileStream, “My Cool File.txt”);
}
Como: Usar aplicativos para habilitar rodapés, rastreamento e análise
O SendGrid fornece a funcionalidade adicional de email por meio do uso de aplicativos. Essas são as configurações que podem ser adicionadas a uma mensagem de email para habilitar uma funcionalidade específica, como habilitar rastreamento de clique, Google analytics, rastreamento de assinatura e assim por diante. Para obter uma lista completa de aplicativos, consulte Configurações do aplicativo.
É possível aplicar filtros às mensagens de email do SendGrid usando os métodos implementados como parte da classe do SendGrid.
Os exemplos a seguir demonstram os filtros de rodapé e de rastreamento de cliques:
// Create the email object first, then add the properties.
SendGridMessage myMessage = new
SendGridMessage();
myMessage.AddTo(“[email protected]”);
myMessage.From = new
MailAddress(“[email protected]”, “John Smith”);
myMessage.Subject = “Testing the SendGrid Library”;
myMessage.Text = “Hello World!”;
// Add a footer to the message.
myMessage.EnableFooter(“PLAIN TEXT FOOTER”, “
HTML FOOTER
“);
// Create the email object first, then add the properties.
SendGridMessage myMessage = new
SendGridMessage();
myMessage.AddTo(“[email protected]”);
myMessage.From = new
MailAddress(“[email protected]”, “John Smith”);
myMessage.Subject = “Testing the SendGrid Library”;
myMessage.Html = “
“;
myMessage.Text = “Hello World!”;
// true indicates that links in plain text portions of the email
// should also be overwritten for link tracking purposes.
myMessage.EnableClickTracking(true);
Como: Usar serviços adicionais do SendGrid
O SendGrid oferece API e Ganchos da web baseados na web, que você pode usar para aproveitar a funcionalidade adicional do SendGrid do aplicativo do Azure. Para obter detalhes completos, consulte a Documentação da API do SendGrid.
Agora que você já conhece os princípios do serviço de email do SendGrid, acesse estes links para saber mais.
-
Repositório de biblioteca C# do SendGrid: sendgrid-csharp
-
Documentação da API do SendGrid: https://sendgrid.com/docs
-
Oferta especial do SendGrid para clientes do Azure: https://sendgrid.com
Último vídeo
Novidades via inbox
Fique por dentro no meu Boletim digital toda semana um conteúdo novo