feat: allow self-signed certs, closes #13238

This commit is contained in:
Barış Soner Uşaklı
2025-03-11 11:49:40 -04:00
parent 1ca7b7ecce
commit de502cd2ee
4 changed files with 13 additions and 1 deletions

View File

@@ -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,

View File

@@ -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",

View File

@@ -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 {

View File

@@ -116,6 +116,11 @@
<label for="email:smtpTransport:pool" class="form-check-label">[[admin/settings/email:smtp-transport.pool]]</label>
<p class="form-text">[[admin/settings/email:smtp-transport.pool-help]]</p>
</div>
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" id="email:smtpTransport:allow-self-signed" data-field="email:smtpTransport:allow-self-signed" name="email:smtpTransport:allow-self-signed" />
<label for="email:smtpTransport:allow-self-signed" class="form-check-label">[[admin/settings/email:smtp-transport.allow-self-signed]]</label>
<p class="form-text">[[admin/settings/email:smtp-transport.allow-self-signed-help]]</p>
</div>
<div class="mb-3">
<label class="form-label" for="email:smtpTransport:service">[[admin/settings/email:smtp-transport.service]]</label>
<select class="form-select" id="email:smtpTransport:service" data-field="email:smtpTransport:service">