Como enviar e-mails com o SendGrid

É possível usar o SendGrid para aprimorar os e-mails no App Engine. Com ele, você melhora sua capacidade de entrega e fica sabendo o que realmente acontece com os e-mails enviados pelo aplicativo. Veja estatísticas de aberturas, cliques, cancelamentos de inscrição, relatórios de spam e muito mais na interface ou na API do SendGrid.

Preço

Os clientes do App Engine podem enviar 12.000 e-mails todos os meses gratuitamente. Basta se inscrever no plano API SendGrid Email por meio do Console do Google Cloud Platform. O Google é remunerado pelos clientes que se inscrevem em uma conta paga.

Bibliotecas do SendGrid

Envie e-mails com o SendGrid por meio de um redirecionamento SMTP ou usando uma API Web.

Antes de começar

Para usar o SendGrid e enviar um e-mail, siga estas etapas:

  1. Inscreva-se no plano API SendGrid Email.
  2. Anote a chave da API Sendgrid.
  3. Selecione ou crie um novo projeto do GCP no Console do Google Cloud Platform, depois verifique se há um aplicativo do App Engine e se o faturamento está ativado:

    Acessar o App Engine

    O Painel será aberto se houver um aplicativo do App Engine no projeto e o faturamento estiver ativado. Caso contrário, siga as instruções para escolher uma região e ativar o faturamento.
  4. Adicione sua chave da API SendGrid às variáveis de configuração em appsettings.json.

    Por exemplo, no código de amostra abaixo, adicione:

    {
      "SendGrid": {
        "ApiKey": "your-sendgrid-api-key"
      },
      "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
          "Default": "Debug",
          "System": "Information",
          "Microsoft": "Information"
        }
      }
    }
    

Como enviar e-mails

É possível criar uma instância do SendGrid e usá-la para enviar e-mails.

Na amostra de código a seguir, mostramos como enviar um e-mail e especificamos um tratamento de erros:

Task<HttpResponseMessage> CallSendGrid(string recipient)
{
    // As of 2017-02-09, the sendgrid Nuget package is not compatible
    // with .net core.  So, this code follows the web api spec:
    // https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
    // If you're using more sendgrid features, consider using swagger
    // to generate a client from:
    // https://github.com/sendgrid/sendgrid-oai
    var request = new
    {
        personalizations = new[] {
            new {
                to = new[]
                {
                    new {email = recipient}
                },
                subject = "Hello World!"
            }
        },
        from = new
        {
            email = "alice@example.com"
        },
        content = new[]
        {
            new {
                type = "text/plain",
                value = "Hello, World!"
            }
        }
    };
    HttpClient sendgrid3 = new HttpClient();
    sendgrid3.DefaultRequestHeaders.Authorization =
        new System.Net.Http.Headers.AuthenticationHeaderValue(
            "Bearer", _sendgridApiKey);
    string jsonRequest = JsonConvert.SerializeObject(request);
    return sendgrid3.PostAsync("https://api.sendgrid.com/v3/mail/send",
        new StringContent(jsonRequest, System.Text.Encoding.UTF8,
        "application/json"));
}

Adicione os detalhes da conta e edite o endereço de e-mail, além de outros tipos de conteúdo da mensagem.

Para mais configurações e exemplos de e-mail, consulte a documentação da SendGrid Web API.

Como testar e implantar

Visual Studio

Para testar o aplicativo no local, siga estas etapas:

  1. No Visual Studio, abra dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln.
  2. Pressione F5.

Para implantar o aplicativo, siga estas etapas:

  1. No "Gerenciador de soluções", clique com o botão direito do mouse em SendGrid e selecione Publicar SendGrid no Google Cloud...
  2. Clique em App Engine Flex.
  3. Clique em Publicar.

Linha de comando

Para testar o aplicativo no local, siga estas etapas:

  1. Execute os seguintes comandos no diretório dotnet-docs-samples\appengine\flexible\:
    dotnet restore
    dotnet run
  2. No seu navegador da Web, acesse http://localhost:5000/.
  3. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.

Para implantar o aplicativo, siga estas etapas:

  1. Navegue até o diretório dotnet-docs-samples\appengine\flexible\.
  2. Execute os seguintes comandos:
    dotnet restore
    dotnet publish
    gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml

Como ver informações em tempo real

Além de enviar e-mails, o SendGrid pode receber e-mails ou verificar as mensagens que você já enviou usando webhooks.

API Event

Depois de começar a enviar e-mails usando o aplicativo, você poderá ver estatísticas coletadas pelo SendGrid para avaliar o programa de e-mail. É possível usar a API Event para consultar esses dados. Por exemplo, sempre que um destinatário abre ou clica em um e-mail, o SendGrid pode enviar um JSON descritivo para o app do Google App Engine, que pode reagir ao evento ou armazenar os dados para uso futuro.

A documentação da API Event mostra como configurar o webhook, descreve os nove tipos de evento e mostra os campos incluídos nos retornos de chamada de evento.

API Inbound Parse

O SendGrid pode receber e-mails. A API Inbound Parse pode ser usada em aplicativos interativos, como na automação de tíquetes de suporte.

A API Parse é um webhook que envia dados para o aplicativo quando algo novo está disponível. Nesse caso, o webhook é chamado sempre que um novo e-mail chega ao domínio associado ao e-mail recebido.

Os e-mails são enviados para o aplicativo estruturado como JSON, com remetente, destinatários, assunto e corpo como campos diferentes. Anexos de até 20 MB são permitidos.

A documentação da API Parse tem mais detalhes, incluindo campos extras enviados com todos os e-mails, bem como instruções para configuração e uso do DNS.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para documentos .NET