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:
- Configura il servizio email basato su SMTP per ottenere le credenziali SMTP.
- Verifica l'identità del mittente per l'autenticazione con il tuo dominio o indirizzo email.
- Configura i file di origine con le credenziali SMTP e il metodo di invio, quindi esegui il deployment dell'applicazione.
- 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.netoexample.mailjet.com.Porta: il numero di porta per la connessione. Ad esempio
587per 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
apikeye 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:
- Accedi al servizio del tuo provider DNS.
- Vai alla pagina di gestione DNS del tuo dominio.
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:
Esegui questo comando per aggiornare l'SDK App Engine all'ultima versione:
# Ensure your virtual environment is active pip install --upgrade appengine-python-standard # Save the new version to your requirements file pip freeze > requirements.txtAggiungi il seguente codice al file
app.yamlper 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 host SMTP. Ad esempio,
smtp.sendgrid.netoexample.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
app.yaml. - Se non utilizzi la funzione
send_mail_to_admins(), ometti l'impostazioneAPPENGINE_ADMIN_EMAIL_RECIPIENTS.
Esegui questo comando per eseguire il deployment della tua applicazione:
gcloud app 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:
- Attiva la parte dell'applicazione che invia un'email.
- Controlla Logs Explorer per assicurarti che non siano presenti errori relativi alle chiamate API o al tentativo di connessione SMTP.
- 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,Deliveredo simile.
Passaggi successivi
- Crea e accedi a un secret utilizzando Secret Manager.
- Eseguire la migrazione dai servizi in bundle legacy.