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

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

Questa guida descrive la procedura per la migrazione dei servizi di email in uscita dalla Mail API a un servizio email 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 alla Mail API 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 bounce delle email. Questi report forniscono informazioni utili su come gli utenti interagiscono con le tue email.

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

  • Limiti di invio giornalieri aumentati rispetto alla Mail API legacy 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 tue 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 l'applicazione per verificare 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 dell'account.

  • Password o chiave API: la password dell'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.

Verificare l'identità del mittente

Per impedire lo spam, tutti i servizi email richiedono di verificare di essere 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 provider per verificare l'identità del mittente prima di procedere con la configurazione dell'applicazione.

Per aggiungere record DNS all'host del dominio:

  1. Accedi al servizio del provider DNS.
  2. Accedi alla pagina di gestione DNS del tuo dominio.
  3. Aggiungi i record CNAME esattamente come forniti dal tuo provider di servizi email. Per ogni record, procedi nel seguente modo:

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

L'attivazione delle modifiche DNS potrebbe richiedere alcune ore. 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:

  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>5.0.0</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' Google Cloud ID progetto.

  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 dell'host SMTP. Ad esempio, smtp.sendgrid.net o example.mailjet.com.
    • SMTP_USER: il nome utente di accesso SMTP dell'account. Ad esempio, apiKey.
    • SMTP_PASSWORD: la password o la chiave API che hai ottenuto dal tuo provider 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
    

Testare l'applicazione

La migrazione è andata a buon fine se riesci a eseguire il deployment dell'app senza errori. Per verificare che il servizio di posta funzioni:

  1. Attiva la parte dell'applicazione che invia un'email.
  2. Controlla Esplora log per assicurarti che non siano presenti errori relativi alle chiamate API o al tentativo di connessione SMTP.
  3. Accedi all'account del provider email 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 recapito contrassegnato come Processed, Delivered o simile.

Passaggi successivi