Configurar o VERP para lidar com e-mails devolvidos

Configurando o tratamento de rejeições

O Discourse usa a técnica Variable envelope return path (VERP) para tratar e-mails devolvidos (bounces).

Para ativar o VERP, defina a configuração do site “endereço de e-mail de resposta” com um modelo de endereço de e-mail que use o sinal +. O padrão
replies+%{reply_key}@discourse.example.com

… funciona bem. Se você estiver usando seu próprio servidor de e-mail ou o da sua empresa, é só isso :tada:

Sua instância do Discourse deve ser capaz de receber e-mails enviados para este endereço. Isso deve funcionar via POP, mas nós recomendamos fortemente a Entrega direta de e-mail de entrada para sites auto-hospedados

Se, no entanto, você estiver usando um serviço de e-mail de terceiros, você precisará habilitar o VERP ou ativar os webhooks deles da seguinte forma:

MailGun

  1. Faça login no MailGun e vá para seu painel; procure na coluna da esquerda pela página SendingWebhooks.
  2. Selecione a aba Configuration e copie a HTTP signing key
  3. No seu site Discourse, defina a configuração do site Mailgun API key com sua HTTP signing key
  4. De volta ao Mailgun, clique no botão Add webhook (selecionando Domain-level) e defina a HTTP post URL como https://your.discourse/webhooks/mailgun. Teste isto.
  5. Selecione Permanent Failure e Temporary failure, verifique o Domínio e então Crie o Webhook.

SendGrid

  • Faça login no SendGrid e vá para Mail Settings
  • expanda a configuração Event Webhook e habilite-a se ainda não estiver
  • clique em edit para definir a HTTP POST URL como http://your.discourse/webhooks/sendgrid
  • certifique-se de ter selecionado as seguintes 3 ações: Dropped, Deferred e Bounced
  • salve suas alterações clicando no :white_check_mark:

MailJet

  • Faça login no MailJet e vá para event tracking
  • marque o evento bounce
  • defina a endpoint URL como http://your.discourse/webhooks/mailjet
  • marque o :white_medium_square: na coluna group events
  • clique no botão save

SparkPost

  • Faça login no SparkPost e vá para seu painel.
  • Selecione Account nos ícones do menu esquerdo
  • Selecione Webhooks no menu ( SparkPost )
  • Selecione New Webhook.
  • Insira um valor amigável para Webhook Name, por exemplo, Discourse Forum
  • Insira uma Target URL como http://your.discourse/webhooks/sparkpost
  • Selecione Add Webhook.

Amazon Simple Email Service (AWS SES)

  • No Discourse:
    • defina reply by email enabled e reply by email address conforme o topo da OP
    • defina manual polling enabled
  • Na AWS:
    • crie um Tópico SNS
    • crie uma Assinatura SNS para o Tópico criado como HTTPS apontando para https://your.discourse/webhooks/aws
    • vá para SES > Verified Identities, selecione o domínio do seu site e vá para a aba Notifications. Edite suas Notificações de Feedback. Defina o feedback de Bounce e o feedback de Complaint para o Tópico SNS que você acabou de criar

Postmark

  • Faça login no Postmark e selecione o servidor usado para enviar e-mails do Discourse
  • Selecione o fluxo de mensagens associado aos e-mails do Discourse, tipicamente Default Transactional Stream
  • Clique em Webhooks
  • Clique em Add webhook
  • Insira a Webhook URL como http://your.discourse/webhooks/postmark
  • Em, Quais eventos devemos enviar?, marque Delivery e Spam complaint
  • Role para baixo e clique em Save webhook

Testando Rejeições

Para garantir que tudo está funcionando, faça o seguinte:

  1. Cadastre-se para uma nova conta no seu site com um e-mail obviamente incorreto, no formato bademail@obviously-invalid-domain.com ou clearly.nobody.has.this.email.address@gmail.com
  2. Espere um tempo para que os e-mails sejam totalmente devolvidos (verifique os logs do seu provedor, se desejar – eles geralmente serão mostrados sob o nível de log “warn” ou “error”)
  3. Verifique /admin/email/bounced no seu site para confirmar que a rejeição foi capturada. Lembre-se que isso pode levar até 48 horas dependendo de quantas tentativas e da lógica particular do seu provedor de e-mail.

Configurando Rejeições

O tratamento de rejeições pode ser personalizado usando estas configurações do site

  • soft bounce score: pontos adicionados à “pontuação de rejeição” do usuário quando recebemos uma rejeição temporária do endereço de e-mail dele
  • hard bounce score: pontos adicionados à “pontuação de rejeição” do usuário quando recebemos uma rejeição permanente (ou desconhecida) do endereço de e-mail dele
  • reset bounce score after days: número de dias durante os quais não devemos receber nenhuma rejeição antes que possamos redefinir a “pontuação de rejeição” do usuário de volta para 0
  • bounce score threshold: limite de pontuação no qual pararemos de enviar e-mails não urgentes para o usuário

Última Revisão por @SaraDev em 2022-07-19T20:00:00Z

51 curtidas
Does Discourse use Mailgun's validations feature?
VERP bounce replies ignored when using Mailgun
Postmark bounce support?
Email-in replies thread wrongly
Amazon SES/SNS email complaints not received, bounces missing information
What mail service do you recommend?
Confused about VERP, email bounces & additional setup on Discourse
Reply-by-Email was working, now broken
Mailgun "temporarily disabled due to high bounce rate"
How to deactive account of those users who're not receiving emails
Surface data about users with too many bounces
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Bounced Email Info Not Found
Fix AWS SNS Bounce
How to block outgoing emails to at anon.forumurl?
Mailgun api key check backward (no API key should be required if bounces handled by mail receiver)
Switching from SMTP to oAuth
Is handling bouncing emails optional, or is it something I definitely need to set up?
Moving from Mailgun to Amazon SES as an amateur
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Mailgun api key, what is it for?
Question about the mail-receiver
Goodbye Sparkpost
Migrated forum with many invalid (bouncing) emails
Amazon SES API - How to setup?
Zero entries in bounced email list
Email suppression list handling
Email suppression list handling
How hard is it to handle Discourse after installation
Set up mail-receiver, but now site won't send any emails?
Installation by the book
Too many user emails domains not working lead to mailgun domain disabled: what to do?
Mailgun huge dropped subscriber
Flush bouncing user mail address
Configuring AWS SES for outgoing, bounce, and incoming email
Notes on Silencing or Deleting users
Retrying bounced emails?
Discourse Mailgun Routes
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced