@stamhoofd/models 2.24.0 → 2.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
- package/dist/src/helpers/EmailBuilder.js +18 -7
- package/dist/src/helpers/EmailBuilder.js.map +1 -1
- package/dist/src/migrations/1724929140-default-templates-verify-email.sql +5 -0
- package/dist/src/migrations/1724939437-default-templates-invite-admin.sql +5 -0
- package/dist/src/models/Email.d.ts.map +1 -1
- package/dist/src/models/Email.js +9 -3
- package/dist/src/models/Email.js.map +1 -1
- package/dist/src/models/EmailRecipient.d.ts.map +1 -1
- package/dist/src/models/EmailRecipient.js.map +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
- package/dist/src/models/EmailVerificationCode.js +44 -25
- package/dist/src/models/EmailVerificationCode.js.map +1 -1
- package/dist/src/models/Organization.d.ts +7 -9
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js +20 -35
- package/dist/src/models/Organization.js.map +1 -1
- package/package.json +2 -2
- package/src/helpers/EmailBuilder.ts +22 -8
- package/src/migrations/1724929140-default-templates-verify-email.sql +5 -0
- package/src/migrations/1724939437-default-templates-invite-admin.sql +5 -0
- package/src/models/Email.ts +9 -3
- package/src/models/EmailRecipient.ts +1 -0
- package/src/models/EmailVerificationCode.ts +46 -27
- package/src/models/Organization.ts +21 -41
|
@@ -67,24 +67,18 @@ class Organization extends simple_database_1.Model {
|
|
|
67
67
|
}
|
|
68
68
|
// Methods
|
|
69
69
|
static async getByEmail(email) {
|
|
70
|
-
if (["hallo@stamhoofd.be", "hallo@stamhoofd.nl"].includes(email)) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
70
|
if (email.startsWith('noreply-')) {
|
|
74
71
|
// Trim
|
|
75
72
|
email = email.substring("noreply-".length);
|
|
76
73
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (email.endsWith("@stamhoofd.nl")) {
|
|
86
|
-
const uri = email.substring(0, email.length - "@stamhoofd.nl".length);
|
|
87
|
-
return await Organization.getByURI(uri);
|
|
74
|
+
for (const domain of [
|
|
75
|
+
...Object.values(STAMHOOFD.domains.defaultBroadcastEmail ?? {}),
|
|
76
|
+
...Object.values(STAMHOOFD.domains.defaultTransactionalEmail ?? {}),
|
|
77
|
+
]) {
|
|
78
|
+
if (email.endsWith("@" + domain)) {
|
|
79
|
+
const uri = email.substring(0, email.length - ("@" + domain).length);
|
|
80
|
+
return await Organization.getByURI(uri);
|
|
81
|
+
}
|
|
88
82
|
}
|
|
89
83
|
const at = email.indexOf("@");
|
|
90
84
|
const domain = email.substring(at + 1);
|
|
@@ -679,33 +673,24 @@ class Organization extends simple_database_1.Model {
|
|
|
679
673
|
});
|
|
680
674
|
}
|
|
681
675
|
/**
|
|
682
|
-
*
|
|
676
|
+
* Return default e-mail address if no email addresses are set.
|
|
683
677
|
*/
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
const filtered = admins.filter(a => a.permissions?.forOrganization(this)?.hasAccessRight(structures_1.AccessRight.OrganizationFinanceDirector));
|
|
689
|
-
if (filtered.length > 0) {
|
|
690
|
-
return filtered.map(f => f.getEmailTo()).join(", ");
|
|
678
|
+
getDefaultFrom(i18n, withName = true, type = 'broadcast') {
|
|
679
|
+
const domain = type === 'transactional' ? i18n.localizedDomains.defaultTransactionalEmail() : i18n.localizedDomains.defaultBroadcastEmail();
|
|
680
|
+
if (!withName) {
|
|
681
|
+
return ('noreply-' + this.uri + "@" + domain);
|
|
691
682
|
}
|
|
692
|
-
return
|
|
683
|
+
return '"' + this.name.replaceAll("\"", "\\\"") + '" <' + ('noreply-' + this.uri + "@" + domain) + '>';
|
|
693
684
|
}
|
|
694
685
|
/**
|
|
695
|
-
*
|
|
686
|
+
* @deprecated Switch to EmailBuilder.sendEmailTemplate
|
|
696
687
|
*/
|
|
697
|
-
getStrongEmail(i18n, withName = true) {
|
|
698
|
-
if (!withName) {
|
|
699
|
-
return ('noreply-' + this.uri + "@" + i18n.$t("shared.domains.email"));
|
|
700
|
-
}
|
|
701
|
-
return '"' + this.name.replaceAll("\"", "\\\"") + '" <' + ('noreply-' + this.uri + "@" + i18n.$t("shared.domains.email")) + '>';
|
|
702
|
-
}
|
|
703
688
|
getEmail(id, strongDefault = false) {
|
|
704
689
|
if (id === null) {
|
|
705
690
|
return this.getDefaultEmail(strongDefault);
|
|
706
691
|
}
|
|
707
692
|
// Send confirmation e-mail
|
|
708
|
-
let from =
|
|
693
|
+
let from = this.getDefaultFrom(this.i18n, false, strongDefault ? 'transactional' : 'broadcast');
|
|
709
694
|
const sender = this.privateMeta.emails.find(e => e.id === id);
|
|
710
695
|
let replyTo = undefined;
|
|
711
696
|
if (sender) {
|
|
@@ -734,12 +719,12 @@ class Organization extends simple_database_1.Model {
|
|
|
734
719
|
}
|
|
735
720
|
return this.getDefaultEmail(strongDefault);
|
|
736
721
|
}
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
722
|
+
/**
|
|
723
|
+
* @deprecated Switch to EmailBuilder.sendEmailTemplate
|
|
724
|
+
*/
|
|
740
725
|
getDefaultEmail(strongDefault = false) {
|
|
741
726
|
// Send confirmation e-mail
|
|
742
|
-
let from = strongDefault ? this.
|
|
727
|
+
let from = strongDefault ? this.getDefaultFrom(this.i18n, false) : this.uri + "@stamhoofd.email";
|
|
743
728
|
const sender = this.privateMeta.emails.find(e => e.default) ?? this.privateMeta.emails[0];
|
|
744
729
|
let replyTo = undefined;
|
|
745
730
|
if (sender) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Organization.js","sourceRoot":"","sources":["../../../src/models/Organization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Organization.js","sourceRoot":"","sources":["../../../src/models/Organization.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/models",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.25.2",
|
|
4
4
|
"main": "./dist/src/index.js",
|
|
5
5
|
"types": "./dist/src/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "2eda2d1bc9aa4ea061b002d265a5615a87eeef8b"
|
|
33
33
|
}
|
|
@@ -4,6 +4,7 @@ import { Formatter } from "@stamhoofd/utility";
|
|
|
4
4
|
|
|
5
5
|
import { SimpleError } from "@simonbackx/simple-errors";
|
|
6
6
|
import { EmailTemplate, Group, Organization, Platform, User, Webshop } from "../models";
|
|
7
|
+
import { I18n } from "@stamhoofd/backend-i18n";
|
|
7
8
|
|
|
8
9
|
export type EmailTemplateOptions = {
|
|
9
10
|
type: EmailTemplateType,
|
|
@@ -63,8 +64,6 @@ export async function getEmailTemplate(data: EmailTemplateOptions) {
|
|
|
63
64
|
|
|
64
65
|
export async function getDefaultEmailFrom(organization: Organization|null, options: Pick<EmailBuilderOptions, "type"> & { template: Omit<EmailTemplateOptions, "organizationId"|"type"> }) {
|
|
65
66
|
// When choosing sending domain, prefer using the one with the highest reputation
|
|
66
|
-
const preferStrong = options.type === 'transactional'
|
|
67
|
-
|
|
68
67
|
let preferEmailId: string | null = null;
|
|
69
68
|
|
|
70
69
|
if (options.template.group) {
|
|
@@ -76,8 +75,9 @@ export async function getDefaultEmailFrom(organization: Organization|null, optio
|
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
if (organization) {
|
|
79
|
-
//
|
|
80
|
-
let from =
|
|
78
|
+
// Default email address for the chosen email type
|
|
79
|
+
let from = organization.getDefaultFrom(organization.i18n, false, options.type ?? 'broadcast');
|
|
80
|
+
|
|
81
81
|
const sender: OrganizationEmail | undefined = (preferEmailId ? organization.privateMeta.emails.find(e => e.id === preferEmailId) : null) ?? organization.privateMeta.emails.find(e => e.default) ?? organization.privateMeta.emails[0];
|
|
82
82
|
let replyTo: string | undefined = undefined
|
|
83
83
|
|
|
@@ -115,15 +115,27 @@ export async function getDefaultEmailFrom(organization: Organization|null, optio
|
|
|
115
115
|
|
|
116
116
|
const platform = await Platform.getSharedPrivateStruct()
|
|
117
117
|
|
|
118
|
+
// Default e-mail if no email addresses are configured
|
|
119
|
+
const i18n = new I18n("nl", "BE")
|
|
120
|
+
const transactionalDomain = i18n.localizedDomains.defaultTransactionalEmail()
|
|
121
|
+
const broadcastDomain = i18n.localizedDomains.defaultBroadcastEmail()
|
|
122
|
+
const domain = (options.type === 'transactional' ?transactionalDomain : broadcastDomain)
|
|
123
|
+
let from = 'hallo@' + domain
|
|
124
|
+
|
|
118
125
|
// Platform
|
|
119
|
-
// TODO: read from config
|
|
120
|
-
let from = 'hallo@stamhoofd.be'
|
|
121
126
|
const sender: OrganizationEmail | undefined = (preferEmailId ? platform.privateConfig.emails.find(e => e.id === preferEmailId) : null) ?? platform.privateConfig.emails.find(e => e.default) ?? platform.privateConfig.emails[0];
|
|
122
127
|
let replyTo: string | undefined = undefined
|
|
123
128
|
|
|
124
129
|
if (sender) {
|
|
125
130
|
replyTo = sender.email
|
|
126
131
|
|
|
132
|
+
// Are we allowed to send an e-mail from this domain?
|
|
133
|
+
if (sender.email.endsWith("@"+transactionalDomain) || sender.email.endsWith("@"+broadcastDomain)) {
|
|
134
|
+
// Allowed to send from
|
|
135
|
+
from = sender.email
|
|
136
|
+
replyTo = undefined
|
|
137
|
+
}
|
|
138
|
+
|
|
127
139
|
// Include name in form field
|
|
128
140
|
if (sender.name) {
|
|
129
141
|
from = '"'+sender.name.replaceAll("\"", "\\\"")+"\" <"+from+">"
|
|
@@ -222,14 +234,16 @@ export async function getEmailBuilder(organization: Organization|null, email: Em
|
|
|
222
234
|
}
|
|
223
235
|
continue
|
|
224
236
|
}
|
|
237
|
+
|
|
238
|
+
const unsubscribeUrl = "https://"+STAMHOOFD.domains.dashboard+"/"+(organization ? (organization.i18n.locale + '/') : '')+"unsubscribe?id="+encodeURIComponent(unsubscribe.id)+"&token="+encodeURIComponent(unsubscribe.token)+"&type="+encodeURIComponent(email.unsubscribeType ?? 'all')
|
|
225
239
|
recipient.replacements.push(Replacement.create({
|
|
226
240
|
token: "unsubscribeUrl",
|
|
227
|
-
value:
|
|
241
|
+
value: unsubscribeUrl
|
|
228
242
|
}))
|
|
229
243
|
|
|
230
244
|
// Override headers
|
|
231
245
|
recipient.headers = {
|
|
232
|
-
'List-Unsubscribe':
|
|
246
|
+
'List-Unsubscribe': `<${unsubscribeUrl}>`,
|
|
233
247
|
'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click'
|
|
234
248
|
}
|
|
235
249
|
cleaned.push(recipient)
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
2
|
+
('1b26c047-94b8-4b7c-9124-292d38da5c06', '[{{organizationName}}] Verifieer jouw e-mailadres', NULL, NULL, NULL, 'VerifyEmailWithoutCode', '{{greeting}}Verifieer jouw e-mailadres om te kunnen inloggen bij {{organizationName}}. Klik op de onderstaande link om jouw e-mailadres te bevestigen.\n\n \n \n \n \n Bevestig e-mailadres\n \n \n \n \n\nDit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.{{organizationName}}', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title>[{{organizationName}}] Verifieer jouw e-mailadres</title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Verifieer jouw e-mailadres om te kunnen inloggen bij {{organizationName}}. Klik op de onderstaande link om jouw e-mailadres te bevestigen.</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartButton\" data-id=\"confirmEmailUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{confirmEmailUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">Bevestig e-mailadres</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Dit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{organizationName}}</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Verifieer jouw e-mailadres om te kunnen inloggen bij \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}, {\"text\": \". Klik op de onderstaande link om jouw e-mailadres te bevestigen.\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"confirmEmailUrl\"}, \"content\": [{\"text\": \"Bevestig e-mailadres\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Dit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}]}]}, \"version\": 328}', '2024-08-29 13:29:26', '2024-08-29 13:29:26');
|
|
3
|
+
|
|
4
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
5
|
+
('6594a28e-a204-401c-9bca-6d88141b07dd', '[{{organizationName}}] Verifieer jouw e-mailadres', NULL, NULL, NULL, 'VerifyEmail', '{{greeting}}Verifieer jouw e-mailadres om te kunnen inloggen bij {{organizationName}}.Vul de onderstaande code in op de website:{{confirmEmailCode}}Of klik op onderstaande link:\n\n \n \n \n \n bevestig e-mailadres\n \n \n \n \n\nDit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.{{organizationName}}', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title>[{{organizationName}}] Verifieer jouw e-mailadres</title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Verifieer jouw e-mailadres om te kunnen inloggen bij {{organizationName}}.</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Vul de onderstaande code in op de website:</p><h1 style=\"margin: 0; padding: 0;\">{{confirmEmailCode}}</h1><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Of klik op onderstaande link:</p><div data-type=\"smartButton\" data-id=\"confirmEmailUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{confirmEmailUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">bevestig e-mailadres</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Dit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{organizationName}}</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Verifieer jouw e-mailadres om te kunnen inloggen bij \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}, {\"text\": \".\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Vul de onderstaande code in op de website:\", \"type\": \"text\"}]}, {\"type\": \"heading\", \"attrs\": {\"level\": 1}, \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"confirmEmailCode\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Of klik op onderstaande link:\", \"type\": \"text\"}]}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"confirmEmailUrl\"}, \"content\": [{\"text\": \"bevestig e-mailadres\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Dit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}]}]}, \"version\": 328}', '2024-08-29 13:28:44', '2024-08-29 13:28:44');
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
2
|
+
('548ae096-d5db-4115-af44-4155ba50b30d', '✉️ Beheerder van {{platformOrOrganizationName}}', NULL, NULL, NULL, 'AdminInvitation', '{{greeting}}{{inviterName}} heeft je toegevoegd als beheerder van {{platformOrOrganizationName}}. Je kan inloggen met je bestaande account {{email}}. Daar kan je jouw vereniging zoeken en aanklikken.\n\n \n \n \n \n Log in\n \n \n \n \n\nWeet je jouw wachtwoord niet meer? Dan kan je een nieuw wachtwoord instellen via de onderstaande link:{{resetUrl}}Deze link is geldig tot {{validUntil}}.Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title>✉️ Beheerder van {{platformOrOrganizationName}}</title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{inviterName}} <code>heeft je toegevoegd als beheerder van </code>{{platformOrOrganizationName}}<code>. Je kan inloggen met je bestaande account </code>{{email}}<code>. Daar kan je jouw vereniging zoeken en aanklikken.</code></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartButton\" data-id=\"signInUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{signInUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">Log in</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p class=\"description\" style=\"color: #5e5e5e;\"><code>Weet je jouw wachtwoord niet meer? Dan kan je een nieuw wachtwoord instellen via de onderstaande link:</code></p><p class=\"description\" style=\"color: #5e5e5e;\">{{resetUrl}}</p><p class=\"description\" style=\"color: #5e5e5e;\"><br></p><p class=\"description\" style=\"color: #5e5e5e;\">Deze link is geldig tot {{validUntil}}.</p><p class=\"description\" style=\"color: #5e5e5e;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"inviterName\"}}, {\"text\": \" \", \"type\": \"text\"}, {\"text\": \"heeft je toegevoegd als beheerder van \", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"platformOrOrganizationName\"}}, {\"text\": \". Je kan inloggen met je bestaande account \", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"email\"}}, {\"text\": \". Daar kan je jouw vereniging zoeken en aanklikken.\", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"signInUrl\"}, \"content\": [{\"text\": \"Log in\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Weet je jouw wachtwoord niet meer? Dan kan je een nieuw wachtwoord instellen via de onderstaande link:\", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}]}, {\"type\": \"descriptiveText\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"resetUrl\"}}]}, {\"type\": \"descriptiveText\"}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Deze link is geldig tot \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"validUntil\"}}, {\"text\": \".\", \"type\": \"text\"}]}, {\"type\": \"descriptiveText\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.\", \"type\": \"text\"}]}]}, \"version\": 328}', '2024-08-29 13:41:58', '2024-08-29 13:41:58');
|
|
3
|
+
|
|
4
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
5
|
+
('daf7152c-a58c-4c60-811f-4f7d5d4026cc', '✉️ Beheerder van {{platformOrOrganizationName}}', NULL, NULL, NULL, 'AdminInvitationNewUser', '{{greeting}}{{inviterName}} heeft je uitgenodigd om beheerder te worden van {{platformOrOrganizationName}}.\n\n \n \n \n \n Account aanmaken\n \n \n \n \n\nDeze link is geldig tot {{validUntil}}.Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title>✉️ Beheerder van {{platformOrOrganizationName}}</title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{inviterName}} <code>heeft je uitgenodigd om beheerder te worden van </code>{{platformOrOrganizationName}}<code>.</code></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartButton\" data-id=\"resetUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{resetUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">Account aanmaken</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p class=\"description\" style=\"color: #5e5e5e;\">Deze link is geldig tot {{validUntil}}.</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"inviterName\"}}, {\"text\": \" \", \"type\": \"text\"}, {\"text\": \"heeft je uitgenodigd om beheerder te worden van \", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"platformOrOrganizationName\"}}, {\"text\": \".\", \"type\": \"text\", \"marks\": [{\"type\": \"code\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"resetUrl\"}, \"content\": [{\"text\": \"Account aanmaken\", \"type\": \"text\"}]}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Deze link is geldig tot \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"validUntil\"}}, {\"text\": \".\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Ken je deze vereniging niet? Dan kan je deze e-mail veilig negeren.\", \"type\": \"text\"}]}]}, \"version\": 328}', '2024-08-29 13:41:58', '2024-08-29 13:41:58');
|
package/src/models/Email.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { Formatter } from '@stamhoofd/utility';
|
|
|
11
11
|
import { getEmailBuilder } from '../helpers/EmailBuilder';
|
|
12
12
|
import { EmailRecipient } from './EmailRecipient';
|
|
13
13
|
import { Organization } from './Organization';
|
|
14
|
+
import { I18n } from '@stamhoofd/backend-i18n';
|
|
14
15
|
|
|
15
16
|
export class Email extends Model {
|
|
16
17
|
static table = "emails";
|
|
@@ -139,10 +140,11 @@ export class Email extends Model {
|
|
|
139
140
|
}
|
|
140
141
|
|
|
141
142
|
getDefaultFromAddress(organization?: Organization|null): string {
|
|
142
|
-
|
|
143
|
+
const i18n = new I18n("nl", "BE")
|
|
144
|
+
let address = "noreply@" + i18n.localizedDomains.defaultBroadcastEmail()
|
|
143
145
|
|
|
144
146
|
if (organization) {
|
|
145
|
-
address = organization.
|
|
147
|
+
address = organization.getDefaultFrom(organization.i18n, false, 'broadcast');
|
|
146
148
|
}
|
|
147
149
|
|
|
148
150
|
if (!this.fromName) {
|
|
@@ -198,7 +200,11 @@ export class Email extends Model {
|
|
|
198
200
|
}
|
|
199
201
|
} else {
|
|
200
202
|
// Platform
|
|
201
|
-
|
|
203
|
+
// Is the platform allowed to send from the provided email address?
|
|
204
|
+
const domains = [
|
|
205
|
+
...Object.values(STAMHOOFD.domains.defaultTransactionalEmail ?? {}),
|
|
206
|
+
...Object.values(STAMHOOFD.domains.defaultBroadcastEmail ?? {})
|
|
207
|
+
]
|
|
202
208
|
|
|
203
209
|
for (const domain of domains) {
|
|
204
210
|
if (upToDate.fromAddress!.endsWith("@"+domain)) {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { column, Model } from "@simonbackx/simple-database";
|
|
2
2
|
import { SimpleError } from "@simonbackx/simple-errors";
|
|
3
3
|
import { I18n } from "@stamhoofd/backend-i18n";
|
|
4
|
-
import {
|
|
4
|
+
import { EmailTemplateType, Recipient, Replacement } from "@stamhoofd/structures";
|
|
5
5
|
import basex from "base-x";
|
|
6
6
|
import crypto from "crypto";
|
|
7
7
|
import { v4 as uuidv4 } from "uuid";
|
|
8
|
+
import { sendEmailTemplate } from "../helpers/EmailBuilder";
|
|
9
|
+
import { Platform } from "./Platform";
|
|
8
10
|
|
|
9
11
|
const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
|
|
10
12
|
const bs58 = basex(ALPHABET)
|
|
@@ -241,38 +243,55 @@ export class EmailVerificationCode extends Model {
|
|
|
241
243
|
}
|
|
242
244
|
}
|
|
243
245
|
|
|
244
|
-
send(user: import('./User').User, organization: import('./Organization').Organization|null, i18n: I18n, withCode = true) {
|
|
245
|
-
const
|
|
246
|
-
from: (user.organizationPermissions || !organization ? Email.getInternalEmailFor(i18n) : organization.getStrongEmail(i18n)),
|
|
247
|
-
replyTo: undefined // Don't use replyTo because it affects deliverability rates due to spam filters
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
const url = this.getEmailVerificationUrl(user, organization, i18n)
|
|
246
|
+
async send(user: import('./User').User, organization: import('./Organization').Organization|null, i18n: I18n, withCode = true) {
|
|
247
|
+
const url = this.getEmailVerificationUrl(user, organization, i18n);
|
|
251
248
|
|
|
252
|
-
const
|
|
253
|
-
const footerHTML = (!user.organizationPermissions && organization ? "<br><br>—<br><br>Onze ledenadministratie werkt via het Stamhoofd platform, op maat van verenigingen. Probeer het ook via <a href=\"https://"+i18n.localizedDomains.marketing()+"/ledenadministratie\">Stamhoofd</a><br><br>" : '')
|
|
249
|
+
const name = organization?.name ?? (await Platform.getSharedPrivateStruct()).config.name;
|
|
254
250
|
|
|
255
|
-
const
|
|
251
|
+
const replacements: Replacement[] = [
|
|
252
|
+
Replacement.create({
|
|
253
|
+
token: 'organizationName',
|
|
254
|
+
value: name
|
|
255
|
+
}),
|
|
256
|
+
Replacement.create({
|
|
257
|
+
token: 'confirmEmailUrl',
|
|
258
|
+
value: url
|
|
259
|
+
})
|
|
260
|
+
]
|
|
256
261
|
|
|
257
262
|
if (withCode) {
|
|
258
263
|
const formattedCode = this.code.substr(0, 3)+" "+this.code.substr(3)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
264
|
+
|
|
265
|
+
await sendEmailTemplate(organization, {
|
|
266
|
+
recipients: [
|
|
267
|
+
Recipient.create({
|
|
268
|
+
email: this.email,
|
|
269
|
+
replacements: [
|
|
270
|
+
...replacements,
|
|
271
|
+
Replacement.create({
|
|
272
|
+
token: 'confirmEmailCode',
|
|
273
|
+
value: formattedCode
|
|
274
|
+
})
|
|
275
|
+
]
|
|
276
|
+
})
|
|
277
|
+
],
|
|
278
|
+
template: {
|
|
279
|
+
type: EmailTemplateType.VerifyEmail,
|
|
280
|
+
},
|
|
281
|
+
type: 'transactional'
|
|
267
282
|
})
|
|
268
283
|
} else {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
284
|
+
await sendEmailTemplate(organization, {
|
|
285
|
+
recipients: [
|
|
286
|
+
Recipient.create({
|
|
287
|
+
email: this.email,
|
|
288
|
+
replacements
|
|
289
|
+
})
|
|
290
|
+
],
|
|
291
|
+
template: {
|
|
292
|
+
type: EmailTemplateType.VerifyEmailWithoutCode,
|
|
293
|
+
},
|
|
294
|
+
type: 'transactional'
|
|
276
295
|
})
|
|
277
296
|
}
|
|
278
297
|
}
|
|
@@ -305,7 +324,7 @@ export class EmailVerificationCode extends Model {
|
|
|
305
324
|
if (!user) {
|
|
306
325
|
return
|
|
307
326
|
}
|
|
308
|
-
verificationCode.send(user, organization, i18n)
|
|
327
|
+
await verificationCode.send(user, organization, i18n)
|
|
309
328
|
}
|
|
310
329
|
|
|
311
330
|
/**
|