Envoyer des e-mails avec SendGrid

E-mails sur App Engine. SendGrid peut améliorer la transmission de vos e-mails et assurer le suivi des e-mails envoyés par votre application. Grâce à l'interface SendGrid ou à son API, vous pouvez consulter des statistiques sur les ouvertures, les clics, les désabonnements, les rapports de spam et bien plus encore.

Prix

Les clients App Engine peuvent envoyer gratuitement 12 000 e-mails par mois en souscrivant à un forfait d'API Email de SendGrid via la console Google Cloud Platform. Veuillez prendre en compte que Google est rémunéré pour les clients qui s'inscrivent à un compte payant.

Bibliothèques SendGrid

SendGrid vous permet d'envoyer des e-mails via un relais SMTP ou à l'aide d'une API Web.

Pour intégrer SendGrid à votre projet App Engine, utilisez les bibliothèques clientes SendGrid.

Avant de commencer

Pour envoyer un e-mail à l'aide de SendGrid, procédez comme suit :

  1. Inscrivez-vous au forfait de l'API de messagerie SendGrid.
  2. Retenez la clé de l'API SendGrid.
  3. Sélectionnez ou créez un projet GCP dans la console Google Cloud Platform, puis assurez-vous qu'une application App Engine existe et que la facturation est activée :

    Accéder à App Engine

    Le tableau de bord s'affiche si une application App Engine existe déjà dans votre projet et que la facturation est activée. Sinon, suivez les instructions permettant de choisir une région et d'activer la facturation.
  4. Ajoutez la clé de l'API SendGrid à la section des variables d'environnement du fichier app.yaml.

    Dans le cas de l'exemple de code ci-dessous, ajoutez ce qui suit :

    env_variables:
      SENDGRID_API_KEY: <your-sendgrid-api-key>
      SENDGRID_SENDER: <your-sendgrid-sender>

  5. Ajoutez la bibliothèque cliente Ruby SendGrid à votre application. Exemple :
    source "https://rubygems.org"
    
    gem "sendgrid-ruby"
    gem "sinatra"

Envoyer des e-mails

Vous pouvez créer une instance SendGrid et l'utiliser pour envoyer un e-mail.

L'exemple de code suivant montre comment envoyer un e-mail et spécifie certaines règles de traitement des erreurs :

require "sinatra"
require "sendgrid-ruby"

get "/" do
  '
    <form method="post" action="/send/email">
      <input type="text" name="recipient" placeholder="Enter recipient email">
      <input type="submit" value="Send email">
    </form>
  '
end

post "/send/email" do
  # Define necessary information for a new email
  from    = SendGrid::Email.new email: SENDGRID_SENDER
  to      = SendGrid::Email.new email: params[:recipient]
  subject = "Hello from Google Cloud Ruby SendGrid Sample"
  content = SendGrid::Content.new type:  "text/plain",
                                  value: "Congratulations it works!"

  # Define the new email with provided information
  mail = SendGrid::Mail.new from, subject, to, content

  # Create a new API Client to send the new email
  sendgrid = SendGrid::API.new api_key: SENDGRID_API_KEY

  begin
    # Send request to "mail/send"
    response = sendgrid.client.mail._("send").post(request_body: mail.to_json)

    "Email sent. #{response.status_code} #{response.body}"
  rescue Exception => ex
    "An error occurred: #{ex.message}"
  end
end

Ajoutez les détails de votre compte, puis modifiez l'adresse e-mail et le contenu du message.

Pour obtenir plus de paramètres de messagerie et d'exemples, consultez la bibliothèque Ruby SendGrid.

Tester et déployer

Avant d'exécuter votre application en local, vous devez définir les variables d'environnement sur votre ordinateur local à l'aide de la ligne de commande. Dans le cas de notre exemple de code :

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

Vous pouvez exécuter l'application en local pour tester les rappels et l'envoi de SMS. Exemple :

bundle exec ruby app.rb

Après avoir testé votre application, déployez votre projet dans App Engine :

gcloud app deploy

Obtenir des informations en temps réel

En plus d'envoyer des e-mails, SendGrid peut recevoir des e-mails ou exploiter les e-mails que vous avez déjà envoyés à l'aide de webhooks.

API Event

Dès que vous envoyez des e-mails à partir de votre application, vous pouvez consultez les statistiques collectées par SendGrid pour évaluer votre programme de messagerie. L'API Event vous permet d'afficher ces données. Par exemple, dès qu'un destinataire ouvre ou clique sur un e-mail, SendGrid peut envoyer à votre application Google App Engine un fichier JSON descriptif permettant de réagir à l'événement ou de stocker les données pour une utilisation ultérieure.

La documentation de l'API Event explique comment configurer le webhook, décrit les neuf types d'événements et présente les champs inclus dans les rappels d'événements.

API Inbound Parse

SendGrid peut recevoir des e-mails. L'API Inbound Parse peut être utilisée pour des applications interactives, telles que l'automatisation des demandes d'assistance.

L'API Parse est un webhook qui envoie des données à votre application lorsqu'un nouvel événement est disponible. Dans ce cas, le webhook est appelé dès qu'un nouvel e-mail arrive dans le domaine que vous avez associé à un e-mail entrant.

Les e-mails sont envoyés à l'application au format JSON, avec l'expéditeur, les destinataires, l'objet et le corps du message dans des champs distincts. Les pièces jointes sont autorisées jusqu'à 20 Mo.

La documentation de l'API Parse fournit de plus amples informations sur ce sujet. Elle présente, entre autres, les champs supplémentaires envoyés avec chaque e-mail, ainsi que des instructions pour la configuration et l'utilisation du DNS.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement flexible App Engine pour les documents Ruby