From 28c63c5c6019dbdea3fb16d04e901024467929d6 Mon Sep 17 00:00:00 2001 From: "aime.rolandi" Date: Thu, 24 Jul 2025 13:00:57 -0300 Subject: [PATCH] smtp configurable --- config/runtime.exs | 56 +++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/config/runtime.exs b/config/runtime.exs index b1df394..cd91c20 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -38,19 +38,43 @@ if config_env() == :prod do end -config :api, Api.Mailer, - adapter: Swoosh.Adapters.SMTP, - relay: Envar.get("SMTP_RELAY"), - port: 587, - auth: :always, - ssl: false, - tls: :always, - retries: 10, - username: Envar.get("SMTP_USER"), - password: Envar.get("SMTP_PASS"), - tls_options: [ - verify: :verify_peer, - cacerts: :public_key.cacerts_get(), - server_name_indication: ~c"mail.sanatoriopasteur.com.ar", - depth: 99 - ] +case Envar.get("SMPT_TYPE") do + "tls" -> + config :api, Api.Mailer, + adapter: Swoosh.Adapters.SMTP, + relay: Envar.get("SMTP_RELAY"), + port: String.to_integer(Envar.get("SMTP_PORT")) || Envar.get("SMTP_PORT"), + username: Envar.get("SMTP_USER"), + password: Envar.get("SMTP_PASS"), + ssl: false, + tls: :always, + retries: 10, + tls_options: [ + verify: :verify_peer, + cacerts: :public_key.cacerts_get(), + server_name_indication: String.to_charlist(Envar.get("SERVER_NAME_INDICATION") || ~c"#{Envar.get("SERVER_NAME_INDICATION")}"), + depth: 99 + ] + + "ssl" -> + config :api, Api.Mailer, + adapter: Swoosh.Adapters.SMTP, + relay: Envar.get("SMTP_RELAY"), + username: Envar.get("SMTP_USER"), + password: Envar.get("SMTP_PASS"), + auth: :always, + ssl: true, + port: String.to_integer(Envar.get("SMTP_PORT")) || Envar.get("SMTP_PORT"), + retries: 10, + sockopts: [ + versions: [:"tlsv1.2"], + verify: :verify_peer, + cacerts: :public_key.cacerts_get(), + depth: 3, + customize_hostname_check: [ + match_fun: :public_key.pkix_verify_hostname_match_fun(:https) + ], + server_name_indication: Envar.get("SERVER_NAME_INDICATION") + ] + _ -> nil +end