Eseguire la migrazione dal servizio di posta 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 dal servizio Mail 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 dal servizio Mail di App Engine 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 al servizio Mail di App Engine legacy:

  • I servizi basati su SMTP migliorano il recapito delle email riducendo la probabilità che le email 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 al servizio Mail 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, segui questi passaggi:

  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, segui questi passaggi:

  1. Aggiungi la seguente versione di Python SDK al file requirements.txt:

    appengine-python-standard==2.0.0
    
  2. Aggiungi il seguente codice al file app.yaml per passare al servizio SMTP:

    runtime: RUNTIME  # a supported python version
    
    env_variables:
      # Enable the SMTP service.
      APPENGINE_USE_SMTP_MAIL_SERVICE: "true"
    
      # --- SMTP Server Configuration ---
      # The server address from your mail provider
      APPENGINE_SMTP_HOST: "SMTP_HOST"
    
      # The recommended port for TLS connections
      APPENGINE_SMTP_PORT: "587"
    
      # The username for your SMTP login
      APPENGINE_SMTP_USER: "SMTP_USER"
    
      # The API key or password
      APPENGINE_SMTP_PASSWORD: "SMTP_PASSWORD"
    
      # Use TLS for a secure connection
      APPENGINE_SMTP_USE_TLS: "true"
    
      # --- For sending emails to Admins ---
      # A comma-separated list of admin email addresses.
      # This is required if you use the send_mail_to_admins() function.
      APPENGINE_ADMIN_EMAIL_RECIPIENTS: "admin@example.com,another-admin@example.com"
    

    Sostituisci quanto segue:

    • RUNTIME: una versione del runtime Python 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 ottenuta dal provider email di terze parti. Per una maggiore sicurezza, ti consigliamo di utilizzare Secret Manager per archiviare la chiave API anziché inserirla nel file app.yaml.
    • Se non utilizzi la funzione send_mail_to_admins(), ometti l'impostazione APPENGINE_ADMIN_EMAIL_RECIPIENTS.
  3. Esegui questo comando per eseguire il deployment della tua applicazione:

    gcloud app deploy
    

Testare 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 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