diff --git a/public/language/en-GB/admin/settings/email.json b/public/language/en-GB/admin/settings/email.json index 97696e1f44..50d210103b 100644 --- a/public/language/en-GB/admin/settings/email.json +++ b/public/language/en-GB/admin/settings/email.json @@ -15,6 +15,10 @@ "smtp-transport.gmail-warning2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", "smtp-transport.host": "SMTP Host", "smtp-transport.port": "SMTP Port", + "smtp-transport.security": "Connection security", + "smtp-transport.security-encrypted": "Encrypted", + "smtp-transport.security-starttls": "StartTLS", + "smtp-transport.security-none": "None", "smtp-transport.username": "Username", "smtp-transport.username-help": "For the Gmail service, enter the full email address here, especially if you are using a Google Apps managed domain.", "smtp-transport.password": "Password", diff --git a/src/emailer.js b/src/emailer.js index d82228d712..b1ed617445 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -56,17 +56,33 @@ Emailer.registerApp = function (expressApp) { // Enable Gmail transport if enabled in ACP if (parseInt(meta.config['email:smtpTransport:enabled'], 10) === 1) { - var smtpOptions = { - auth: { + var smtpOptions = {}; + + if (meta.config['email:smtpTransport:user'] || meta.config['email:smtpTransport:pass']) { + smtpOptions.auth = { user: meta.config['email:smtpTransport:user'], pass: meta.config['email:smtpTransport:pass'], - }, - }; + }; + } - if (meta.config['email:smtpTransport:serice'] === 'nodebb-custom-smtp') { + if (meta.config['email:smtpTransport:service'] === 'nodebb-custom-smtp') { smtpOptions.port = meta.config['email:smtpTransport:port']; smtpOptions.host = meta.config['email:smtpTransport:host']; - smtpOptions.secure = true; + + if (meta.config['email:smtpTransport:security'] === 'NONE') { + smtpOptions.secure = false; + smtpOptions.requireTLS = false; + smtpOptions.ignoreTLS = true; + } else if (meta.config['email:smtpTransport:security'] === 'STARTTLS') { + smtpOptions.secure = false; + smtpOptions.requireTLS = true; + smtpOptions.ignoreTLS = false; + } else { + // meta.config['email:smtpTransport:security'] === 'ENCRYPTED' or undefined + smtpOptions.secure = true; + smtpOptions.requireTLS = true; + smtpOptions.ignoreTLS = false; + } } else { smtpOptions.service = meta.config['email:smtpTransport:service']; } diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index 50a3423ece..7315564f1b 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -40,12 +40,12 @@
[[admin/settings/email:smtp-transport.service-help]] @@ -63,6 +63,13 @@ + + +