(Atualização) O ambiente é o servidor Ubuntu 24.04 e a versão opensmtpd: 7.4.0p1-1build4.
Estou usando o Amazon SES com alguns domínios validados. Não quero retransmitir e-mails que não sejam de domínios autorizados. Meu smtpd.conf atual é:
table relay_secrets file:/etc/smtpd/relay_secrets
listen on localhost port 25 mask-src hostname MyDomain.com
listen on socket mask-src
action "relay_ses" relay host smtp+tls://[email protected]:587 auth <relay_secrets>
match from mail-from "@MyDomain.com" for any action "relay_ses"
match from any reject
E funciona:
- Um e-mail de [email protegido] para [email protegido] passar
- Um email de [email protegido] para [email protegido] é rejeitado.
Mas o erro é: Destinatário inválido: [email protegido] . Não é erro do remetente. Acho que é porque é a última regra que decide não enviar o e-mail. Existe alguma forma de indicar quais domínios (na parte From) são válidos?
Resolvido
A primeira vez que tentei usar filtros cometi um erro de sintaxe que não causou erro, mas não funcionou. Não há necessidade de verificar novamente os domínios ao enviar, mas minha configuração real é um pouco mais complicada do que isso e eu a mantenho para garantir. Eu realmente gostaria de não confiar no regex para isso, mas não consegui encontrar mais nada e funciona. Alguma outra solução?
Estou surpreso que o OpenSMTPD não seja mais recomendado. Em todos os lugares você encontra recomendações para sendmail ou postfix que são tremendamente inchadas, ou pequenas como nullmailer ou sSMTP etc, que são limitadas ou com erros.
Para especificar domínios de remetente válidos no OpenSMTPD, defina o parâmetro smtpd_sender_restrictions no arquivo smtpd.conf. Você pode especificar domínios permitidos usando regras de correspondência ou retransmissão para permitir que apenas determinados domínios enviem emails. Isso ajuda a evitar spam e abuso do seu servidor SMTP para mensagens enviadas.