From de502cd2eec9d928ae97b82b2429a59af4cee2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 11 Mar 2025 11:49:40 -0400 Subject: [PATCH] feat: allow self-signed certs, closes #13238 --- install/data/defaults.json | 1 + public/language/en-GB/admin/settings/email.json | 2 ++ src/emailer.js | 6 +++++- src/views/admin/settings/email.tpl | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index a86fa023e4..43dd55bcc6 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -147,6 +147,7 @@ "username:disableEdit": 0, "email:disableEdit": 0, "email:smtpTransport:pool": 0, + "email:smtpTransport:allow-self-signed": 0, "hideFullname": 0, "hideEmail": 0, "showFullnameAsDisplayName": 0, diff --git a/public/language/en-GB/admin/settings/email.json b/public/language/en-GB/admin/settings/email.json index a3f49a0416..31d5a4f0fb 100644 --- a/public/language/en-GB/admin/settings/email.json +++ b/public/language/en-GB/admin/settings/email.json @@ -28,6 +28,8 @@ "smtp-transport.password": "Password", "smtp-transport.pool": "Enable pooled connections", "smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.", + "smtp-transport.allow-self-signed": "Allow self-signed certificates", + "smtp-transport.allow-self-signed-help": "Enabling this setting will allow you to use self-self or invalid TLS certificates.", "template": "Edit Email Template", "template.select": "Select Email Template", diff --git a/src/emailer.js b/src/emailer.js index 6c57d6b44a..f280c21399 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -153,7 +153,11 @@ Emailer.setupFallbackTransport = (config) => { } else { smtpOptions.service = String(config['email:smtpTransport:service']); } - + if (config['email:smtpTransport:allow-self-signed']) { + smtpOptions.tls = { + rejectUnauthorized: false, + }; + } Emailer.transports.smtp = nodemailer.createTransport(smtpOptions); Emailer.fallbackTransport = Emailer.transports.smtp; } else { diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index a89fb850a8..d39d3b8f72 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -116,6 +116,11 @@

[[admin/settings/email:smtp-transport.pool-help]]

+
+ + +

[[admin/settings/email:smtp-transport.allow-self-signed-help]]

+