Envio de emails com credenciais SMTP usando Amazon SES funciona… Mas não do Discourse

Configurei o Amazon SES.
Estou fora da sandbox, o que significa que posso enviar e-mails para endereços não verificados.
Da documentação do Amazon SES:

Quando sua conta estiver fora da sandbox, você poderá enviar e-mails para qualquer destinatário, independentemente de o endereço ou domínio do destinatário ser verificado. No entanto, você ainda precisará verificar todas as identidades que usar como endereços "De", "Origem", "Remetente" ou "Responder a".

Também configurei minhas credenciais SMTP.

Enviar um e-mail de teste para um destinatário não verificado funciona a partir do painel do Amazon S3 ou de qualquer outra ferramenta de teste SMTP.

No entanto, não funciona a partir do 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           # (opcional, padrão true)
  DISCOURSE_SMTP_DOMAIN: forum.monocycle.info # (endereço para enviar notificações)
  DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.monocycle.info # (endereço para enviar notificações)

configurações de resposta por e-mail:

Quando envio um e-mail de teste do Discourse, o e-mail é ignorado com esta mensagem de erro:

554 Mensagem rejeitada: Endereço de e-mail não verificado. As seguintes identidades falharam na verificação na região EU-WEST-3: monocycle.info+verp-3a76559e11c2b9a318165af8eb968f22@gmail.com

E, claro, reconstruí meu aplicativo após alterar o app.yml.

Alguma ideia do porquê esse problema ocorre e como resolvê-lo?

Essa mensagem de erro sugere que você precisa criar uma identidade para monocycle.info@gmail.com e verificá-la. Observe que você não precisa verificar o rótulo (+verp-...), pois todos os rótulos serão aceitos quando o endereço for verificado sem um rótulo.

O motivo é que o endereço de e-mail de resposta é usado como endereço Return-Path, um dos tipos que sua citação destaca como necessitando de verificação.

Não tenho certeza por que enviar das outras maneiras funciona, mas acho que seus testes no painel da Amazon e na ferramenta de teste SMTP provavelmente funcionaram porque eles estavam enviando para seu endereço de e-mail de resposta, em vez de usá-lo como endereço Reply-To/Return-Path como o Discourse faz.

A documentação sobre identidades está aqui:

1 curtida

Ah, sim, como descrito aqui:

O que eu não entendi de primeira. Vamos tentar adicionar meu endereço do Gmail como um endereço verificado no SES.

1 curtida

Pelo que sei, você não pode usar endereços ± no SES. Mas eu uso o SES todos os dias através do Discourse.

2 curtidas

Verifiquei monocycle.info@gmail.com e o Discourse pode enviar e-mails aos usuários. O recurso de responder por e-mail também funciona.
Verificarei nos próximos dias se terei algum problema.

Você pode esclarecer um pouco mais? Em relação ao que acabei de escrever (as coisas parecem funcionar). :slight_smile:

1 curtida

Existem duas coisas diferentes:

  • O SES não pode usar endereços com + em tráfego de entrada ou saída (realmente não me lembro do termo exato para o formato +)
  • Estou enviando e-mails o tempo todo do Discourse através do SES

Quando tentei usar a criação/resposta por e-mail, precisei usar o Gmail por causa disso.

Isso é relevante para você… nem a menor ideia :man_facepalming:

1 curtida

Ah, entendi, obrigado pelo esclarecimento. Eu não uso endereços ± para o SES, então acho que não é relevante no meu caso. :slight_smile:

A Amazon os chama de rótulos (labels), assumindo que você está se referindo a endereços do tipo usuário+rótulo@domínio, não me lembro se esse é o termo de e-mail ou apenas o termo da Amazon. Você tem certeza de que eles não são suportados? Eles são bastante usados ​​pelos usuários.
A única coisa que encontrei na documentação é que a extensão SMTPUTF8 não é suportada, limitando a parte local (antes do @) a caracteres ASCII de 7 bits. Isso inclui o caractere +.

Não, você não tem, mas +verp… funciona como tal. Ou estou totalmente enganado?

Tudo bem, minhas respostas podem ser um pouco imprecisas, pois não entendo muito sobre coisas relacionadas a e-mail.


Minha configuração de resposta por e-mail é, de fato, um endereço do Gmail que usa “+” e outras coisas.

Se a configuração responder por e-mail estiver desativada, o envio de e-mails do Discourse funciona (se bem me lembro).

Se a configuração responder por e-mail estiver ativada e eu não verificar o endereço do Gmail no SES, o Discourse não enviará nenhum e-mail, quer tenham um endereço de resposta do Gmail ou não (por exemplo, o e-mail de teste ou um e-mail de resumo não têm o endereço de resposta do Gmail), e gerará um erro 554 Message rejected: Email address is not verified.

Se eu verificar o endereço do Gmail no SES, todos os e-mails enviados pelo Discourse parecem funcionar, quer tenham um endereço de resposta do Gmail ou não.

Claro, eu gostaria de saber um pouco mais sobre como todas essas coisas funcionam, mas contanto que funcione… Essa é minha principal preocupação. :smile:

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