Verify SMTP STARTTLS certificate chains
Some checks are pending
Quality / full-local-gates (push) Waiting to run

This commit is contained in:
SimpleTest 2026-07-22 01:17:31 +03:00
parent 8c281cc756
commit 9938fd60cd

View File

@ -446,6 +446,7 @@ if config_env() == :prod do
smtp_username = System.get_env("SMTP_USERNAME") smtp_username = System.get_env("SMTP_USERNAME")
smtp_password = System.get_env("SMTP_PASSWORD") smtp_password = System.get_env("SMTP_PASSWORD")
smtp_relay = System.get_env("SMTP_RELAY", "mailpit")
smtp_username_set? = is_binary(smtp_username) and smtp_username != "" smtp_username_set? = is_binary(smtp_username) and smtp_username != ""
smtp_password_set? = is_binary(smtp_password) and smtp_password != "" smtp_password_set? = is_binary(smtp_password) and smtp_password != ""
@ -461,13 +462,30 @@ if config_env() == :prod do
raise "SMTP_TLS must be never when SMTP_SSL enables an implicit TLS connection." raise "SMTP_TLS must be never when SMTP_SSL enables an implicit TLS connection."
end end
smtp_tls_options =
if smtp_tls == :never do
[]
else
[
versions: [:"tlsv1.3", :"tlsv1.2"],
verify: :verify_peer,
cacerts: :public_key.cacerts_get(),
depth: 10,
server_name_indication: String.to_charlist(smtp_relay),
customize_hostname_check: [
match_fun: :public_key.pkix_verify_hostname_match_fun(:https)
]
]
end
[ [
adapter: Swoosh.Adapters.SMTP, adapter: Swoosh.Adapters.SMTP,
relay: System.get_env("SMTP_RELAY", "mailpit"), relay: smtp_relay,
port: String.to_integer(System.get_env("SMTP_PORT", "1025")), port: String.to_integer(System.get_env("SMTP_PORT", "1025")),
auth: smtp_auth, auth: smtp_auth,
tls: smtp_tls, tls: smtp_tls,
ssl: smtp_ssl ssl: smtp_ssl,
tls_options: smtp_tls_options
] ]
|> then(fn config -> |> then(fn config ->
case smtp_username do case smtp_username do