CC and BCC interface

This commit is contained in:
Mel O'Hagan 2022-09-21 15:58:04 +01:00
parent 623ecbd36e
commit 1b49f02092
4 changed files with 40 additions and 4 deletions

View File

@ -21,6 +21,14 @@ exports.definition = {
type: "string", type: "string",
title: "Send From", title: "Send From",
}, },
cc: {
type: "string",
title: "CC",
},
bcc: {
type: "string",
title: "BCC",
},
subject: { subject: {
type: "string", type: "string",
title: "Email Subject", title: "Email Subject",
@ -49,13 +57,21 @@ exports.definition = {
} }
exports.run = async function ({ inputs }) { exports.run = async function ({ inputs }) {
let { to, from, subject, contents } = inputs let { to, from, subject, contents, cc, bcc } = inputs
if (!contents) { if (!contents) {
contents = "<h1>No content</h1>" contents = "<h1>No content</h1>"
} }
to = to || undefined to = to || undefined
try { try {
let response = await sendSmtpEmail(to, from, subject, contents, true) let response = await sendSmtpEmail(
to,
from,
subject,
contents,
cc,
bcc,
true
)
return { return {
success: true, success: true,
response, response,

View File

@ -54,7 +54,15 @@ async function checkResponse(response, errorMsg, { ctx } = {}) {
exports.request = request exports.request = request
// have to pass in the tenant ID as this could be coming from an automation // have to pass in the tenant ID as this could be coming from an automation
exports.sendSmtpEmail = async (to, from, subject, contents, automation) => { exports.sendSmtpEmail = async (
to,
from,
subject,
contents,
cc,
bcc,
automation
) => {
// tenant ID will be set in header // tenant ID will be set in header
const response = await fetch( const response = await fetch(
checkSlashesInUrl(env.WORKER_URL + `/api/global/email/send`), checkSlashesInUrl(env.WORKER_URL + `/api/global/email/send`),
@ -65,6 +73,8 @@ exports.sendSmtpEmail = async (to, from, subject, contents, automation) => {
from, from,
contents, contents,
subject, subject,
cc,
bcc,
purpose: "custom", purpose: "custom",
automation, automation,
}, },

View File

@ -10,6 +10,8 @@ exports.sendEmail = async ctx => {
contents, contents,
from, from,
subject, subject,
cc,
bcc,
automation, automation,
} = ctx.request.body } = ctx.request.body
let user let user
@ -23,6 +25,8 @@ exports.sendEmail = async ctx => {
contents, contents,
from, from,
subject, subject,
cc,
bcc,
automation, automation,
}) })
ctx.body = { ctx.body = {

View File

@ -12,7 +12,13 @@ function buildEmailSendValidation() {
return joiValidator.body(Joi.object({ return joiValidator.body(Joi.object({
email: Joi.string().email({ email: Joi.string().email({
multiple: true, multiple: true,
}), }),
cc: Joi.string().email({
multiple: true,
}),
bcc: Joi.string().email({
multiple: true,
}),
purpose: Joi.string().valid(...Object.values(EmailTemplatePurpose)), purpose: Joi.string().valid(...Object.values(EmailTemplatePurpose)),
workspaceId: Joi.string().allow("", null), workspaceId: Joi.string().allow("", null),
from: Joi.string().allow("", null), from: Joi.string().allow("", null),