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

Updating SMTP config to show better errors
This commit is contained in:
Michael Drury 2021-06-09 16:17:12 +01:00 committed by GitHub
commit 512ec19c16
4 changed files with 23 additions and 18 deletions

View File

@ -38,17 +38,21 @@
let loading
async function saveSmtp() {
try {
// Save your SMTP config
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()
if (response.status !== 200) throw new Error(json.message)
smtpConfig._rev = json._rev
smtpConfig._id = json._id
notifications.success(`Settings saved.`)
} catch (err) {
notifications.error(`Failed to save email settings. ${err}`)
}
}

View File

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

View File

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

View File

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