Migrer de l'API App Engine Mail vers un service basé sur SMTP

Pour améliorer la sécurité des e-mails et assurer une distribution fiable et à fort volume, migrez de l'ancienne API Mail vers un service de fournisseur de messagerie tiers standard qui utilise le protocole SMTP (Simple Mail Transfer Protocol), tel que SendGrid, Mailgun ou Mailjet.

Ce guide décrit la procédure de migration des services d'envoi d'e-mails sortants de l'API Mail vers un service de messagerie basé sur SMTP. Vous pouvez appliquer ces instructions pour migrer vers n'importe quel fournisseur de messagerie tiers basé sur SMTP ou utiliser un autre environnement d'exécution compatible. Ce guide ne fournit pas de procédure pour migrer la messagerie entrante qui utilise une alternative tierce.

La norme SMTP offre les avantages suivants par rapport à l'ancienne API Mail App Engine :

  • Les services basés sur SMTP améliorent la distribution des e-mails en réduisant le risque qu'ils soient marqués comme spam.

  • Avec les services basés sur SMTP, vous pouvez accéder à des rapports d'analyse détaillés sur les ouvertures, les clics et les rebonds d'e-mails. Ces rapports fournissent des informations utiles sur la façon dont les utilisateurs interagissent avec vos e-mails.

  • Vous contrôlez entièrement votre réputation d'expéditeur et l'authentification des e-mails.

  • Des limites d'envoi quotidiennes plus élevées que celles de l'ancienne API Mail, avec accès à des fonctionnalités avancées comme les tests A/B, la segmentation et les modèles.

Présentation du processus de migration

Le processus de migration comprend les étapes suivantes :

  1. Configurez le service de messagerie basé sur SMTP pour obtenir vos identifiants SMTP.
  2. Validez votre identité d'expéditeur pour vous authentifier avec votre domaine ou votre adresse e-mail.
  3. Configurez vos fichiers sources avec vos identifiants SMTP et votre méthode d'envoi, puis déployez votre application.
  4. Testez votre application pour vérifier la fonctionnalité d'envoi d'e-mails.

Configurer le service de messagerie basé sur SMTP

Créez un compte auprès d'un fournisseur de messagerie tiers standard utilisant SMTP, tel que SendGrid, Mailgun ou Mailjet, et récupérez les informations suivantes auprès du fournisseur de votre choix :

  • Hôte SMTP : adresse du serveur SMTP utilisé pour envoyer des e-mails. Par exemple, smtp.sendgrid.net ou example.mailjet.com.

  • Port : numéro de port pour la connexion. Par exemple, 587 pour le chiffrement TLS.

  • Nom d'utilisateur : nom d'utilisateur de connexion SMTP de votre compte.

  • Mot de passe ou clé API : mot de passe de votre compte ou clé API, qui sert de mot de passe pour la connexion SMTP. Pour certains fournisseurs comme SendGrid, le nom d'utilisateur est une valeur fixe telle que apikey, et la clé API est utilisée comme mot de passe.

Valider l'identité de votre expéditeur

Pour éviter les spams, tous les services de messagerie vous demandent de confirmer que vous êtes le propriétaire de l'adresse e-mail ou du domaine à partir desquels vous envoyez des e-mails. Cette étape consiste souvent à ajouter des informations DNS spécifiques, telles que des enregistrements CNAME, à la page de gestion DNS de votre hébergeur de domaine.

Suivez les instructions de votre fournisseur pour valider votre identité d'expéditeur avant de configurer l'application.

Pour ajouter des enregistrements DNS à votre hébergeur de domaine, procédez comme suit :

  1. Connectez-vous au service de votre fournisseur DNS.
  2. Accédez à la page de gestion DNS de votre domaine.
  3. Ajoutez les enregistrements CNAME exactement tels qu'ils vous ont été fournis par votre fournisseur de services de messagerie. Pour chaque enregistrement, procédez comme suit :

    • Dans le champ Nom ou Hôte, saisissez les informations sur l'hôte.
    • Dans le champ Points ou Valeur, saisissez la valeur.

L'activation des modifications DNS peut prendre quelques heures. Si la validation échoue, patientez un moment, puis réessayez.

Configurer vos fichiers sources

Pour inclure la fonctionnalité SMTP, procédez comme suit :

  1. Exécutez la commande suivante pour installer Maven :

    sudo apt install maven
    
  2. Ajoutez le code suivant dans votre fichier pom.xml pour passer au service SMTP :

    1. Ajoutez la version de la dépendance appengine-api-1.0-sdk :

       <dependency>
         <groupId>com.google.appengine</groupId>
         <artifactId>appengine-api-1.0-sdk</artifactId>
         <version>2.0.38</version>
       </dependency>
      
    2. Modifiez l'ID de votre projet :

        <configuration>
          <deploy.projectId>PROJECT-ID</deploy.projectId>
          <deploy.version>1</deploy.version>
        </configuration>
      

      Remplacez PROJECT-ID par l'ID du projet Google Cloud .

  3. Ajoutez les variables d'environnement suivantes dans votre fichier appengine-web.xml pour inclure vos configurations d'expéditeur SMTP :

    ...
    <runtime>RUNTIME</runtime>
    <service>default</service>
    <threadsafe>true</threadsafe>
    <app-engine-apis>true</app-engine-apis>
    <env-variables>
    <!-- This is the master switch to enable the SMTP service.-->
    <env-var name="APPENGINE_USE_SMTP_MAIL_SERVICE" value="true" />
    <!-- SMTP Server Configuration -->
    <!-- The server address from your mail provider.-->
    <env-var name="APPENGINE_SMTP_HOST" value="SMTP_HOST" />
    <!-- The recommended port for TLS connections. -->
    <env-var name="APPENGINE_SMTP_PORT" value="587" />
    <!-- The username for your SMTP login. -->
    <env-var name="APPENGINE_SMTP_USER" value="SMTP_USER" />
    <!-- The API key or password -->
    <env-var name="APPENGINE_SMTP_PASSWORD" value="SMTP_PASSWORD" />
    <!--  Use TLS for a secure connection. -->
    <env-var name="APPENGINE_SMTP_USE_TLS" value="true" />
    </env-variables>
    ...
    </appengine-web-app>
    

    Remplacez les éléments suivants :

    • RUNTIME : version d'exécution Java compatible.
    • SMTP_HOST : adresse de l'hôte SMTP. Par exemple, smtp.sendgrid.net ou example.mailjet.com.
    • SMTP_USER : nom d'utilisateur de connexion SMTP de votre compte. Exemple :apiKey
    • SMTP_PASSWORD : mot de passe ou clé API que vous avez obtenus auprès de votre fournisseur de messagerie tiers. Pour renforcer la sécurité, nous vous recommandons d'utiliser Secret Manager pour stocker votre clé API au lieu de la placer dans le fichier appengine-web.xml.
  4. Exécutez la commande suivante pour déployer votre application :

    mvn package appengine:deploy
    

Tester votre application

La migration est réussie si vous êtes en mesure de déployer votre application sans erreur. Pour vérifier que votre service de messagerie fonctionne, procédez comme suit :

  1. Déclenchez la partie de votre application qui envoie un e-mail.
  2. Consultez l'explorateur de journaux pour vous assurer qu'il n'y a pas d'erreurs liées aux appels d'API ou à la tentative de connexion SMTP.
  3. Connectez-vous au compte de votre fournisseur de messagerie tiers (par exemple, Mailgun, Mailjet, SendGrid) et consultez leur flux d'activité, leurs journaux ou leur tableau de bord des envois. Votre e-mail de test devrait apparaître dans le flux avec un état de distribution Processed, Delivered ou similaire.

Étapes suivantes