Você pode fazer isso com uma combinação de smtpd_tls_received_header
e header_checks
.
O seguinte é um exemplo rápido não testado e pode não ser totalmente adequado, mas pode servir como um ponto de partida útil. É aconselhável começar com uma ação WARN
ou INFO
para testes.
Também é possível, dada a natureza multilinha da tentativa de correspondência que nested_header_check
é mais adequada do que header_checks
.
main.cf
header_checks = pcre:$config_directory/smtpd_tls
smtpd_tls
if /Return-Path:.+<.+@(example\.com)>/
!/Received: from ([^ ]+) \([^\)]+) +
\(using [^ ] with cipher [^ ]+ [^(]+\)\)
+[^(]+\)
+by mx1\.example\.net/x
REJECT mail from $1 must be sent using TLS
endif
Pretende-se corresponder a todos os e-mails de example.com e rejeitá-los se não contiverem um padrão semelhante a:
Received: from smtp.example.com (smtp.example.com [192.0.2.1])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by mx1.example.com