Invio di email con credenziali SMTP tramite Amazon SES funziona... Ma non da Discourse

Ho configurato Amazon SES.
Sono fuori dalla sandbox, il che significa che posso inviare email a indirizzi non verificati.
Da documentazione Amazon SES:

Quando il tuo account è fuori dalla sandbox, puoi inviare email a qualsiasi destinatario, indipendentemente dal fatto che l’indirizzo o il dominio del destinatario sia verificato. Tuttavia, devi comunque verificare tutte le identità che utilizzi come indirizzi “Da”, “Sorgente”, “Mittente” o “Return-Path”.

Ho anche configurato le mie credenziali SMTP.

L’invio di un’email di prova a un destinatario non verificato funziona dalla dashboard di Amazon S3 o da qualsiasi altro strumento di test SMTP.

Tuttavia, non funziona da Discourse.

app.yml:

  DISCOURSE_SMTP_ADDRESS: email-smtp.eu-west-3.amazonaws.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: AKIA****************
  DISCOURSE_SMTP_PASSWORD: "*************************************"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, predefinito true)
  DISCOURSE_SMTP_DOMAIN: forum.monocycle.info # (indirizzo da cui inviare le notifiche)
  DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.monocycle.info # (indirizzo da cui inviare le notifiche)

impostazioni di risposta via email:

Quando invio un’email di prova da Discourse, l’email viene saltata con questo messaggio di errore:

554 Messaggio rifiutato: l’indirizzo email non è verificato. Le seguenti identità non hanno superato il controllo nella regione EU-WEST-3: monocycle.info+verp-3a76559e11c2b9a318165af8eb968f22@gmail.com

E ovviamente ho ricostruito la mia app dopo aver modificato app.yml.

Hai qualche idea sul motivo per cui si verifica questo problema e su come risolverlo?

Quel messaggio di errore suggerisce che è necessario creare un’identità per monocycle.info@gmail.com e verificarla. Tieni presente che non è necessario verificare l’etichetta (+verp-...) poiché tutte le etichette saranno accettate quando l’indirizzo viene verificato senza etichetta.

Il motivo è che l’indirizzo email di risposta viene utilizzato come indirizzo Return-Path, uno dei tipi che la tua citazione evidenzia come necessitante di verifica.

Non sono sicuro del perché l’invio in altri modi funzioni, ma penso che i test del tuo dashboard Amazon e dello strumento di test SMTP probabilmente abbiano funzionato perché stavano inviando al tuo indirizzo email di risposta, piuttosto che utilizzarlo come indirizzo Reply-To/Return-Path come fa Discourse.

La documentazione sulle identità è qui:

1 Mi Piace

Ah, sì, come descritto qui:

Che all’inizio non avevo capito. Proviamo ad aggiungere il mio indirizzo Gmail come indirizzo verificato in SES.

1 Mi Piace

Per quanto ne so, non è possibile utilizzare indirizzi ± su SES. Ma uso SES ogni giorno tramite Discourse.

2 Mi Piace

Ho verificato monocycle.info@gmail.com e Discourse può inviare email agli utenti. Anche la funzione di risposta via email funziona.
Vedrò nei prossimi giorni se avrò qualche problema.

Puoi chiarire un po’ di più? Riguardo a quello che ho appena scritto (le cose sembrano funzionare). :slight_smile:

1 Mi Piace

Ci sono due cose diverse:

  • SES non può usare indirizzi con il segno più (+) per il traffico in entrata o in uscita (non ricordo il termine esatto per la forma con il segno più)
  • Invio e-mail continuamente da Discourse tramite SES

Quando ho provato a usare crea/rispondi via e-mail, ho dovuto usare Gmail per questo motivo.

È rilevante per te… non ho la minima idea :man_facepalming:

1 Mi Piace

Oh, va bene, grazie per il chiarimento. Non uso indirizzi ± per SES, quindi non penso sia rilevante nel mio caso. :slight_smile:

Amazon li chiama etichette (labels), supponendo che tu ti riferisca agli indirizzi user+label@domain. Non ricordo se questo sia il termine e-mail o solo il termine di Amazon. Sei sicuro che non siano supportati? Sono abbastanza comunemente usati dagli utenti.

L’unica cosa che riesco a trovare nella documentazione è che l’estensione SMTPUTF8 non è supportata, limitando la parte locale (prima della @) ai caratteri ASCII a 7 bit. Questo include il carattere +.

No, non lo fai, ma +verp… agisce come tale. O mi sbaglio completamente?

Beh, le mie risposte possono essere un po’ imprecise dato che non capisco molto le cose relative alle email.


La mia impostazione di risposta via email è effettivamente un indirizzo Gmail che usa il “+” e cose simili.

Se l’impostazione rispondi via email è disattivata, allora l’invio di email di Discourse funziona (se ricordo bene).

Se l’impostazione rispondi via email è attivata, e se non verifico l’indirizzo Gmail in SES, allora Discourse non invierà alcuna email, sia che abbiano un indirizzo di risposta Gmail o meno (ad esempio, l’email di test o un’email digest non hanno l’indirizzo di risposta Gmail), e restituirà un errore 554 Message rejected: Email address is not verified.

Se verifico l’indirizzo Gmail su SES, allora tutte le email inviate da Discourse sembrano funzionare, sia che abbiano un indirizzo di risposta Gmail o meno.

Naturalmente, mi piacerebbe sapere un po’ di più su come funzionano tutte queste cose, ma finché funziona… Questa è la mia preoccupazione principale. :smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.