Browse Source

Merge pull request #1680 from Budibase/fix/smtp-error

Updating SMTP config to show better errors
gh-pages
Michael Drury 5 years ago
committed by GitHub
parent
commit
2a8129b1de
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      packages/builder/src/pages/builder/portal/manage/email/index.svelte
  2. 16
      packages/worker/src/api/controllers/admin/configs.js
  3. 1
      packages/worker/src/api/routes/admin/configs.js
  4. 6
      packages/worker/src/utilities/email.js

18
packages/builder/src/pages/builder/portal/manage/email/index.svelte

@ -38,17 +38,21 @@
let loading let loading
async function saveSmtp() { async function saveSmtp() {
try { // Save your SMTP config
// Save your SMTP config const response = await api.post(`/api/admin/configs`, smtpConfig)
const response = await api.post(`/api/admin/configs`, smtpConfig)
if (response.status !== 200) {
const error = await response.text()
let message = error
try {
message = JSON.parse(error).message
} catch (err) {}
notifications.error(`Failed to save email settings, reason: ${message}`)
} else {
const json = await response.json() const json = await response.json()
if (response.status !== 200) throw new Error(json.message)
smtpConfig._rev = json._rev smtpConfig._rev = json._rev
smtpConfig._id = json._id smtpConfig._id = json._id
notifications.success(`Settings saved.`) notifications.success(`Settings saved.`)
} catch (err) {
notifications.error(`Failed to save email settings. ${err}`)
} }
} }

16
packages/worker/src/api/controllers/admin/configs.js

@ -27,11 +27,15 @@ exports.save = async function (ctx) {
}) })
} }
// verify the configuration try {
switch (type) { // verify the configuration
case Configs.SMTP: switch (type) {
await email.verifyConfig(config) case Configs.SMTP:
break await email.verifyConfig(config)
break
}
} catch (err) {
ctx.throw(400, err)
} }
try { try {
@ -42,7 +46,7 @@ exports.save = async function (ctx) {
_rev: response.rev, _rev: response.rev,
} }
} catch (err) { } catch (err) {
ctx.throw(err.status, err) ctx.throw(400, err)
} }
} }

1
packages/worker/src/api/routes/admin/configs.js

@ -14,7 +14,6 @@ function smtpValidation() {
host: Joi.string().required(), host: Joi.string().required(),
from: Joi.string().email().required(), from: Joi.string().email().required(),
secure: Joi.boolean().optional(), secure: Joi.boolean().optional(),
selfSigned: Joi.boolean().optional(),
auth: Joi.object({ auth: Joi.object({
type: Joi.string().valid("login", "oauth2", null), type: Joi.string().valid("login", "oauth2", null),
user: Joi.string().required(), user: Joi.string().required(),

6
packages/worker/src/utilities/email.js

@ -27,10 +27,8 @@ function createSMTPTransport(config) {
secure: config.secure || false, secure: config.secure || false,
auth: config.auth, auth: config.auth,
} }
if (config.selfSigned) { options.tls = {
options.tls = { rejectUnauthorized: false,
rejectUnauthorized: false,
}
} }
} else { } else {
options = { options = {

Loading…
Cancel
Save