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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
23 additions and
18 deletions
-
packages/builder/src/pages/builder/portal/manage/email/index.svelte
-
packages/worker/src/api/controllers/admin/configs.js
-
packages/worker/src/api/routes/admin/configs.js
-
packages/worker/src/utilities/email.js
|
|
|
@ -38,17 +38,21 @@ |
|
|
|
let loading |
|
|
|
|
|
|
|
async function saveSmtp() { |
|
|
|
try { |
|
|
|
// Save your SMTP config |
|
|
|
const response = await api.post(`/api/admin/configs`, smtpConfig) |
|
|
|
// 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}`) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -27,11 +27,15 @@ exports.save = async function (ctx) { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
// verify the configuration
|
|
|
|
switch (type) { |
|
|
|
case Configs.SMTP: |
|
|
|
await email.verifyConfig(config) |
|
|
|
break |
|
|
|
try { |
|
|
|
// verify the configuration
|
|
|
|
switch (type) { |
|
|
|
case Configs.SMTP: |
|
|
|
await email.verifyConfig(config) |
|
|
|
break |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
ctx.throw(400, err) |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
@ -42,7 +46,7 @@ exports.save = async function (ctx) { |
|
|
|
_rev: response.rev, |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
ctx.throw(err.status, err) |
|
|
|
ctx.throw(400, err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -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(), |
|
|
|
|
|
|
|
@ -27,10 +27,8 @@ function createSMTPTransport(config) { |
|
|
|
secure: config.secure || false, |
|
|
|
auth: config.auth, |
|
|
|
} |
|
|
|
if (config.selfSigned) { |
|
|
|
options.tls = { |
|
|
|
rejectUnauthorized: false, |
|
|
|
} |
|
|
|
options.tls = { |
|
|
|
rejectUnauthorized: false, |
|
|
|
} |
|
|
|
} else { |
|
|
|
options = { |
|
|
|
|