Como enviar e-mails com o SendGrid

É possível usar o serviço SendGrid para aprimorar os e-mails no App Engine. Ele melhora sua capacidade de entrega e fornece transparência sobre o que realmente acontece com os e-mails enviados pelo app. Você pode ver estatísticas sobre aberturas, cliques, cancelamentos de inscrição, relatórios de spam e muito mais com a interface ou a API do SendGrid.

Preços

Os clientes do App Engine podem enviar 12.000 e-mails todos os meses gratuitamente inscrevendo-se no plano da API SendGrid Email por meio do console do Google Cloud Platform. O Google é remunerado por 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.

Para integrar o SendGrid ao projeto do App Engine, use as bibliotecas de cliente do SendGrid.

Antes de começar

Para usar o SendGrid e enviar um e-mail:

  1. Inscreva-se no plano da API SendGrid Email.
  2. Anote a chave da API SendGrid.
  3. Selecione ou crie um novo projeto no console do Google Cloud Platform e 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 a chave da API SendGrid à seção de variáveis de ambiente em app.yaml.

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

    env_variables:
      SENDGRID_API_KEY: your-sendgrid-api-key

  5. Faça o download do pacote do SendGrid para sua máquina local na linha de comando:
    go get gopkg.in/sendgrid/sendgrid-go.v2
  6. No seu aplicativo, importe o pacote do SendGrid:
    import "gopkg.in/sendgrid/sendgrid-go.v2"
    

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, veja como enviar um e-mail e uma especificação de gerenciamento de erros:

func sendMailHandler(w http.ResponseWriter, r *http.Request) {
	m := sendgrid.NewMail()
	m.AddTo("example@email.com")
	m.SetSubject("Email From SendGrid")
	m.SetHTML("Through AppEngine")
	m.SetFrom("sendgrid@appengine.com")

	if err := sendgridClient.Send(m); err != nil {
		http.Error(w, fmt.Sprintf("could not send mail: %v", err), http.StatusInternalServerError)
		return
	}

	fmt.Fprintf(w, "email sent successfully.")
}

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

Para ver mais configurações e exemplos de e-mail, consulte a biblioteca do SendGrid/Go.

Como testar e implantar

Antes de executar o app localmente, você precisa definir as variáveis de ambiente na máquina local usando a linha de comando. Por exemplo, para o código de amostra acima:

export SENDGRID_API_KEY= your-sendgrid-api-key
export SENDGRID_SENDER= your-sendgrid-sender-email-address

Execute o aplicativo no local para testar os retornos de chamada e a transmissão de SMS. Por exemplo:

go run sendgrid.go

Após testar o aplicativo, implante o projeto no App Engine:

gcloud app deploy

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, inclusive outros campos 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 Go