Eseguire la migrazione dall'API Mail di App Engine a un servizio basato su SMTP

Per migliorare la sicurezza delle email e garantire l'invio affidabile di email ad alto volume, esegui la migrazione dall'API Mail legacy a un servizio di provider email di terze parti standard che utilizza il Simple Mail Transfer Protocol (SMTP), come SendGrid, Mailgun o Mailjet.

Questa guida descrive la procedura per eseguire la migrazione dei servizi di posta in uscita dall'API Mail a un servizio di posta basato su SMTP. Puoi applicare queste istruzioni per eseguire la migrazione a qualsiasi provider email di terze parti basato su SMTP o utilizzare un altro runtime supportato. Questa guida non fornisce i passaggi per la migrazione della messaggistica in entrata che utilizza un'alternativa di terze parti.

Lo standard SMTP offre i seguenti vantaggi rispetto all'API Mail legacy di App Engine:

  • I servizi basati su SMTP migliorano il recapito delle email riducendo la probabilità che vengano contrassegnate come spam.

  • Con i servizi basati su SMTP, puoi accedere a report di analisi dettagliati su aperture, clic e rimbalzi delle email. Questi report forniscono informazioni utili su come gli utenti interagiscono con le tue email.

  • Hai il controllo completo della reputazione del mittente e dell'autenticazione email.

  • Limiti di invio giornalieri aumentati rispetto all'API Mail precedente con accesso a funzionalità avanzate come test A/B, segmentazione e modelli.

Panoramica del processo di migrazione

La procedura di migrazione include i seguenti passaggi:

  1. Configura il servizio email basato su SMTP per ottenere le credenziali SMTP.
  2. Verifica l'identità del mittente per l'autenticazione con il tuo dominio o indirizzo email.
  3. Configura i file di origine con le credenziali SMTP e il metodo di invio, quindi esegui il deployment dell'applicazione.
  4. Testa la tua applicazione per controllare la funzionalità email.

Configurare il servizio email basato su SMTP

Configura un account con un provider email di terze parti standard che utilizza SMTP, come SendGrid, Mailgun o Mailjet, e recupera le seguenti informazioni dal provider scelto:

  • Host SMTP: l'indirizzo del server SMTP utilizzato per l'invio di posta. Ad esempio, smtp.sendgrid.net o example.mailjet.com.

  • Porta: il numero di porta per la connessione. Ad esempio 587 per la crittografia TLS.

  • Nome utente: il nome utente di accesso SMTP del tuo account.

  • Password o chiave API: la password del tuo account o una chiave API, che funge da password per la connessione SMTP. Per alcuni provider come SendGrid, il nome utente è un valore fisso come apikey e la chiave API viene utilizzata come password.

Verifica l'identità del mittente

Per evitare lo spam, tutti i servizi email richiedono di verificare che tu sia il proprietario dell'indirizzo email o del dominio da cui invii le email. Questo passaggio spesso comporta l'aggiunta di dettagli DNS specifici, come i record CNAME, alla pagina di gestione DNS dell'host del dominio.

Segui le istruzioni del tuo fornitore per verificare l'identità del mittente prima di procedere con la configurazione dell'applicazione.

Per aggiungere i record DNS all'host del dominio:

  1. Accedi al servizio del tuo provider DNS.
  2. Vai alla pagina di gestione DNS del tuo dominio.
  3. Aggiungi i record CNAME esattamente come forniti dal tuo fornitore di servizi email. Per ogni record, fai quanto segue:

    • Nel campo Nome o Host, inserisci i dettagli dell'host.
    • Nel campo Punti o Valore, inserisci il valore.

Potrebbero essere necessarie alcune ore prima che le modifiche del DNS diventino attive. Se la verifica non va a buon fine, attendi un po' di tempo e riprova.

Configurare i file di origine

Per includere la funzionalità SMTP, segui questi passaggi:

  1. Esegui questo comando per installare Maven:

    sudo apt install maven
    
  2. Aggiungi il seguente codice al file pom.xml per passare al servizio SMTP:

    1. Aggiungi la versione per la dipendenza 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. Aggiorna l'ID progetto:

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

      Sostituisci PROJECT-ID con l'ID del tuo progetto Google Cloud .

  3. Aggiungi le seguenti variabili di ambiente nel file appengine-web.xml per includere le configurazioni del mittente 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>
    

    Sostituisci quanto segue:

    • RUNTIME: una versione del runtime Java supportata.
    • SMTP_HOST: l'indirizzo host SMTP. Ad esempio, smtp.sendgrid.net o example.mailjet.com.
    • SMTP_USER: il nome utente di accesso SMTP del tuo account. Ad esempio, apiKey.
    • SMTP_PASSWORD: la password o la chiave API ottenuta dal tuo fornitore di servizi email di terze parti. Per una maggiore sicurezza, ti consigliamo di utilizzare Secret Manager per archiviare la chiave API anziché inserirla nel file appengine-web.xml.
  4. Esegui questo comando per eseguire il deployment della tua applicazione:

    mvn package appengine:deploy
    

Testa l'applicazione

La migrazione ha esito positivo se riesci a eseguire il deployment dell'app senza errori. Per verificare che il servizio di posta funzioni, segui questi passaggi:

  1. Attiva la parte dell'applicazione che invia un'email.
  2. Controlla Logs Explorer per assicurarti che non siano presenti errori relativi alle chiamate API o al tentativo di connessione SMTP.
  3. Accedi all'account del tuo provider di posta elettronica di terze parti (ad es. Mailgun, Mailjet, SendGrid) e controlla il feed attività, i log o la dashboard di recapito. L'email di test dovrebbe essere visualizzata nel feed con uno stato di consegna contrassegnato come Processed, Delivered o simile.

Passaggi successivi