fix: repaired smtp configuration for port 587
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Simon 2026-03-16 14:00:23 +01:00
parent 837f5fd5bf
commit e95c1d6254
Signed by: simon
GPG key ID: 40E7A58C4AA1EDB2
6 changed files with 138 additions and 20 deletions

View file

@ -263,20 +263,25 @@ if config_env() == :prod do
verify_mode = if smtp_verify_peer, do: :verify_peer, else: :verify_none
base_smtp_opts = [
adapter: Swoosh.Adapters.SMTP,
relay: String.trim(smtp_host_env),
port: smtp_port_env,
username: System.get_env("SMTP_USERNAME"),
password: smtp_password_env,
ssl: smtp_ssl_mode == "ssl",
tls: if(smtp_ssl_mode == "tls", do: :always, else: :never),
auth: :always,
tls_options: [verify: verify_mode]
]
# Port 465: pass verify in sockopts for initial ssl:connect. Port 587: do not (gen_tcp rejects it).
smtp_opts =
[
adapter: Swoosh.Adapters.SMTP,
relay: String.trim(smtp_host_env),
port: smtp_port_env,
username: System.get_env("SMTP_USERNAME"),
password: smtp_password_env,
ssl: smtp_ssl_mode == "ssl",
tls: if(smtp_ssl_mode == "tls", do: :always, else: :never),
auth: :always,
# tls_options: STARTTLS (587); sockopts: direct SSL (465).
tls_options: [verify: verify_mode],
sockopts: [verify: verify_mode]
]
if smtp_ssl_mode == "ssl" do
Keyword.put(base_smtp_opts, :sockopts, verify: verify_mode)
else
base_smtp_opts
end
|> Enum.reject(fn {_k, v} -> is_nil(v) end)
config :mv, Mv.Mailer, smtp_opts