From ce05b04f741ba1cc4e002acd43fbecddaefe18a9 Mon Sep 17 00:00:00 2001 From: Riccardo Graziosi <31478034+riggraz@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:25:23 +0200 Subject: [PATCH] Fix SMTP configuration to work without authentication (#378) --- config/environments/development.rb | 19 ++++++++++--------- config/environments/production.rb | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index ece75336..8c1784bb 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -45,16 +45,17 @@ Rails.application.configure do if ENV['EMAIL_DELIVERY_METHOD'] == "smtp" config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - address: ENV['EMAIL_SMTP_HOST'], + address: ENV.fetch('EMAIL_SMTP_HOST'), port: ENV.fetch("EMAIL_SMTP_PORT") { 25 }, - domain: ENV["EMAIL_SMTP_HELO_DOMAIN"], - user_name: ENV.fetch("EMAIL_SMTP_USER"), - password: ENV.fetch("EMAIL_SMTP_PASS"), - authentication: ENV.fetch("EMAIL_SMTP_AUTH", "plain"), - enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO", "false")), - openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE", "none"), - tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS", "false")), - } + domain: ENV.fetch("EMAIL_SMTP_HELO_DOMAIN") { nil }, + enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO") { "false" }), + openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE") { "none" }, + tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS") { "false" }), + }.tap do |c| + c[:authentication] = ENV.fetch("EMAIL_SMTP_AUTH") if ENV["EMAIL_SMTP_AUTH"] != nil + c[:user_name] = ENV.fetch("EMAIL_SMTP_USER") if ENV["EMAIL_SMTP_AUTH"] != nil + c[:password] = ENV.fetch("EMAIL_SMTP_PASS") if ENV["EMAIL_SMTP_AUTH"] != nil + end end config.action_mailer.default_options = { diff --git a/config/environments/production.rb b/config/environments/production.rb index 7be7cac6..23aa184f 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -69,16 +69,17 @@ Rails.application.configure do if ENV['EMAIL_DELIVERY_METHOD'] == "smtp" config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - address: ENV['EMAIL_SMTP_HOST'], + address: ENV.fetch('EMAIL_SMTP_HOST'), port: ENV.fetch("EMAIL_SMTP_PORT") { 25 }, - domain: ENV["EMAIL_SMTP_HELO_DOMAIN"], - user_name: ENV.fetch("EMAIL_SMTP_USER"), - password: ENV.fetch("EMAIL_SMTP_PASS"), - authentication: ENV.fetch("EMAIL_SMTP_AUTH", "plain"), - enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO", "true")), - openssl_verify_mode: ENV["EMAIL_SMTP_OPENSSL_VERIFY_MODE"], - tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS", "false")), - } + domain: ENV.fetch("EMAIL_SMTP_HELO_DOMAIN") { nil }, + enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO") { "true" }), + openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE") { "none" }, + tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS") { "false" }), + }.tap do |c| + c[:authentication] = ENV.fetch("EMAIL_SMTP_AUTH") if ENV["EMAIL_SMTP_AUTH"] != nil + c[:user_name] = ENV.fetch("EMAIL_SMTP_USER") if ENV["EMAIL_SMTP_AUTH"] != nil + c[:password] = ENV.fetch("EMAIL_SMTP_PASS") if ENV["EMAIL_SMTP_AUTH"] != nil + end end config.action_mailer.default_options = {