Smtp_should_reject 400 bad request su nounces

Ciao!

Ho fondamentalmente lo stesso problema descritto qui: Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver - #482 by Carleas

Il problema sembra essere che i bounce che ricevo non hanno un from quindi quando viene effettuata la chiamata API come https://forum.example.com/admin/email/smtp_should_reject.json?from=&to=replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com restituisce un 400 con:

{"errors":["param is missing or the value is empty or invalid: from"]}

Ecco un po’ di più dai log di mail-receiver:

Nov 03 07:34:53 mail postfix/smtpd[1044]: connect from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]
<19>Nov  3 07:34:53 discourse-smtp-fast-rejection[1048]: Failed to GET smtp_should_reject answer from https://forum.example.com/admin/email/smtp_should_reject.json: 400<22>Nov  3 07:34:53 policyd-spf[1049]: : prepend Received-SPF: None (no SPF record) identity=helo; client-ip=74.91.xxx.108; helo=v-148-29-xxx-192-srvr1.xxx.com; envelope-from=<> ; receiver=mail.forum.example.com Nov 03 07:34:53 mail postfix/smtpd[1044]: NOQUEUE: reject: RCPT from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]: 450 4.7.1 <replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com>: Recipient address rejected: Internal error, API request failed; from=<> to=<replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com> proto=ESMTP helo=<v-148-29-xxx-192-srvr1.xxx.com>

Tuttavia, anche se arrivasse con un from corretto (mettendo la mia email lì), tornerebbe con:

{"reject":true,"reason":"Mail to this address is not accepted. Check the address and try to send again?"}

Quindi avrebbe rifiutato anche quello…

Mi manca qualcosa nella configurazione? Non riesco a capirlo.

1 Mi Piace

Ciao! Mi dispiace, ma sembra che nessuno abbia risposto al tuo argomento. Sei riuscito a risolvere il tuo problema da solo?

Quale provider di posta elettronica stai utilizzando?

No, purtroppo non sto ricevendo i rimbalzi…

Sto usando un server SMTP da un CPanel, però.

Per quanto riguarda il tuo provider di posta elettronica in uscita? Utilizzi Mailgun o un altro provider di posta elettronica transazionale?

No. Lo stesso SMTP, in uscita funziona perfettamente e in arrivo per gli argomenti sta arrivando perfettamente, il problema è che i bounce non sono visibili al forum, quindi continua a provare e vengo rimproverato dal mio provider di hosting.

Sto inoltrando questo a #hosting.

La risposta ufficiale tipica per questo tipo di cose, sfortunatamente, è dire “l’email è difficile”. Otterrai risultati molto migliori se utilizzi un provider di email transazionali.

Se hai un budget, puoi pubblicare in Marketplace o posso spostare questo argomento lì per te.

Grazie per aver dedicato del tempo ad analizzare questo con me!!

1 Mi Piace

Ciao DevTeVe,

Ho esaminato il codice in questione e credo che tu abbia ragione: penso che il codice smtp_should_reject possa rifiutare erroneamente i messaggi di rimbalzo e le risposte.

Sto segnalando la cosa internamente.

Nel frattempo, se disabiliti il filtro delle policy discourse-smtp-fast-rejection, la posta può fluire?

2 Mi Piace

Wow! Grazie per averlo segnalato! Ero un po’ senza speranza hahaha! Proverò a disabilitare discourse-smtp-fast-rejection (anche se non sono sicuro di come farlo, ma cercherò e ti farò sapere)

1 Mi Piace

Se puoi rimuovere questa riga dal file di configurazione postfix mail-receiver:

smtpd_recipient_restrictions = check_policy_service unix:private/policy

Questo dovrebbe fare al caso tuo:

postconf -e "smtpd_recipient_restrictions ="
1 Mi Piace

Success!

Sto creando il mio mail-receiver.yaml in questo modo (nel frattempo o per sempre? @supermathie)

# questo è il template del container ricevitore di posta
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild mail-receiver
##
## FAI *MOLTA* ATTENZIONE QUANDO MODIFICHI!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file secondo necessitĂ 

base_image: discourse/mail-receiver:release
update_pups: false

expose:
  - "25:25"   # SMTP

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8

  ## Dove deve essere inviata l'e-mail al tuo forum. In generale, va benissimo
  ## usare lo stesso dominio del forum stesso qui.
  MAIL_DOMAIN: community.example.com
# commenta queste righe (e il volume sottostante!) per supportare TLS
  POSTCONF_smtpd_tls_key_file:  /letsencrypt/community.example.com/community.example.com.key
  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/community.example.com/community.example.com.crt
  POSTCONF_smtpd_tls_security_level: may
  POSTCONF_myhostname: community.example.com
  POSTCONF_mynetworks: "127.0.0.0/8 [::1]/128 [fe80::]/64 172.17.0.0/16"
  POSTCONF_smtpd_recipient_restrictions: ""
  ## L'URL di base per questa istanza di Discourse.
  ## SarĂ  qualunque sia l'URL del tuo sito Discourse. Ad esempio,
  ## https://discourse.example.com. Se stai eseguendo una configurazione in sottocartella,
  ## assicurati di tenerne conto (ad es. https://example.com/forum).
  DISCOURSE_BASE_URL: 'https://community.example.com'

  ## La chiave API master del tuo forum Discourse. Puoi ottenerla dalla
  ## scheda "API" del tuo pannello di amministrazione.
  DISCOURSE_API_KEY: <YOURKEY>

  ## Il nome utente da utilizzare per l'elaborazione della posta in arrivo. A meno che tu non abbia
  ## rinominato l'utente `system`, dovresti lasciarlo così com'è.
  DISCOURSE_API_USERNAME: system

volumes:
  - volume:
      host: /var/discourse/shared/mail-receiver/postfix-spool
      guest: /var/spool/postfix
# commenta per supportare TLS
  - volume:
      host: /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/
      guest: /letsencrypt
1 Mi Piace

Andiamo con “per ora” e aggiorneremo questo argomento quando avremo altre notizie.

3 Mi Piace

Grazie mille! Davvero non mi aspettavo che la situazione si evolvesse ulteriormente, ma ora è perfetta e sto ricevendo tutti gli altri rimbalzi!

3 Mi Piace