Fix SMTP configuration to work without authentication (#378)

This commit is contained in:
Riccardo Graziosi
2024-07-04 17:25:23 +02:00
committed by GitHub
parent 3a31d29373
commit ce05b04f74
2 changed files with 20 additions and 18 deletions

View File

@@ -45,16 +45,17 @@ Rails.application.configure do
if ENV['EMAIL_DELIVERY_METHOD'] == "smtp" if ENV['EMAIL_DELIVERY_METHOD'] == "smtp"
config.action_mailer.delivery_method = :smtp config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { config.action_mailer.smtp_settings = {
address: ENV['EMAIL_SMTP_HOST'], address: ENV.fetch('EMAIL_SMTP_HOST'),
port: ENV.fetch("EMAIL_SMTP_PORT") { 25 }, port: ENV.fetch("EMAIL_SMTP_PORT") { 25 },
domain: ENV["EMAIL_SMTP_HELO_DOMAIN"], domain: ENV.fetch("EMAIL_SMTP_HELO_DOMAIN") { nil },
user_name: ENV.fetch("EMAIL_SMTP_USER"), enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO") { "false" }),
password: ENV.fetch("EMAIL_SMTP_PASS"), openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE") { "none" },
authentication: ENV.fetch("EMAIL_SMTP_AUTH", "plain"), tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS") { "false" }),
enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO", "false")), }.tap do |c|
openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE", "none"), c[:authentication] = ENV.fetch("EMAIL_SMTP_AUTH") if ENV["EMAIL_SMTP_AUTH"] != nil
tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS", "false")), 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 end
config.action_mailer.default_options = { config.action_mailer.default_options = {

View File

@@ -69,16 +69,17 @@ Rails.application.configure do
if ENV['EMAIL_DELIVERY_METHOD'] == "smtp" if ENV['EMAIL_DELIVERY_METHOD'] == "smtp"
config.action_mailer.delivery_method = :smtp config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { config.action_mailer.smtp_settings = {
address: ENV['EMAIL_SMTP_HOST'], address: ENV.fetch('EMAIL_SMTP_HOST'),
port: ENV.fetch("EMAIL_SMTP_PORT") { 25 }, port: ENV.fetch("EMAIL_SMTP_PORT") { 25 },
domain: ENV["EMAIL_SMTP_HELO_DOMAIN"], domain: ENV.fetch("EMAIL_SMTP_HELO_DOMAIN") { nil },
user_name: ENV.fetch("EMAIL_SMTP_USER"), enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO") { "true" }),
password: ENV.fetch("EMAIL_SMTP_PASS"), openssl_verify_mode: ENV.fetch("EMAIL_SMTP_OPENSSL_VERIFY_MODE") { "none" },
authentication: ENV.fetch("EMAIL_SMTP_AUTH", "plain"), tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS") { "false" }),
enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_STARTTLS_AUTO", "true")), }.tap do |c|
openssl_verify_mode: ENV["EMAIL_SMTP_OPENSSL_VERIFY_MODE"], c[:authentication] = ENV.fetch("EMAIL_SMTP_AUTH") if ENV["EMAIL_SMTP_AUTH"] != nil
tls: ActiveModel::Type::Boolean.new.cast(ENV.fetch("EMAIL_SMTP_TLS", "false")), 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 end
config.action_mailer.default_options = { config.action_mailer.default_options = {