create ENCRYPTED_EMAIL and IV merge tags to use in unsubscribe link template
This commit is contained in:
parent
3b365701bb
commit
e55fa93d18
4 changed files with 21 additions and 4 deletions
|
@ -358,7 +358,8 @@ module.exports.getWithMergeTags = (listId, cid, callback) => {
|
||||||
FIRST_NAME: subscription.firstName,
|
FIRST_NAME: subscription.firstName,
|
||||||
LAST_NAME: subscription.lastName,
|
LAST_NAME: subscription.lastName,
|
||||||
FULL_NAME: [].concat(subscription.firstName || []).concat(subscription.lastName || []).join(' '),
|
FULL_NAME: [].concat(subscription.firstName || []).concat(subscription.lastName || []).join(' '),
|
||||||
TIMEZONE: subscription.tz || ''
|
TIMEZONE: subscription.tz || '',
|
||||||
|
...tools.artstationMergeTags(subscription),
|
||||||
};
|
};
|
||||||
|
|
||||||
fields.getRow(fieldList, subscription, false, true).forEach(field => {
|
fields.getRow(fieldList, subscription, false, true).forEach(field => {
|
||||||
|
|
15
lib/tools.js
15
lib/tools.js
|
@ -14,6 +14,8 @@ let _ = require('./translate')._;
|
||||||
let util = require('util');
|
let util = require('util');
|
||||||
let createDOMPurify = require('dompurify');
|
let createDOMPurify = require('dompurify');
|
||||||
let htmlToText = require('html-to-text');
|
let htmlToText = require('html-to-text');
|
||||||
|
let crypto = require('crypto')
|
||||||
|
let process = require('process')
|
||||||
|
|
||||||
let blockedUsers = ['abuse', 'admin', 'billing', 'compliance', 'devnull', 'dns', 'ftp', 'hostmaster', 'inoc', 'ispfeedback', 'ispsupport', 'listrequest', 'list', 'maildaemon', 'noc', 'noreply', 'noreply', 'null', 'phish', 'phishing', 'postmaster', 'privacy', 'registrar', 'root', 'security', 'spam', 'support', 'sysadmin', 'tech', 'undisclosedrecipients', 'unsubscribe', 'usenet', 'uucp', 'webmaster', 'www'];
|
let blockedUsers = ['abuse', 'admin', 'billing', 'compliance', 'devnull', 'dns', 'ftp', 'hostmaster', 'inoc', 'ispfeedback', 'ispsupport', 'listrequest', 'list', 'maildaemon', 'noc', 'noreply', 'noreply', 'null', 'phish', 'phishing', 'postmaster', 'privacy', 'registrar', 'root', 'security', 'spam', 'support', 'sysadmin', 'tech', 'undisclosedrecipients', 'unsubscribe', 'usenet', 'uucp', 'webmaster', 'www'];
|
||||||
|
|
||||||
|
@ -30,6 +32,7 @@ module.exports = {
|
||||||
prepareHtml,
|
prepareHtml,
|
||||||
purifyHTML,
|
purifyHTML,
|
||||||
mergeTemplateIntoLayout,
|
mergeTemplateIntoLayout,
|
||||||
|
artstationMergeTags,
|
||||||
workers: new Set()
|
workers: new Set()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -321,3 +324,15 @@ function mergeTemplateIntoLayout(template, layout, callback) {
|
||||||
return done(template, layout);
|
return done(template, layout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function artstationMergeTags(subscription) {
|
||||||
|
const iv = crypto.randomBytes(16)
|
||||||
|
const cipher = crypto.createCipheriv('aes-256-cbc', process.env.ARTSTATION_SECRET, iv)
|
||||||
|
let encrypted_email = cipher.update(subscription.email, 'utf8', 'hex')
|
||||||
|
encrypted_email += cipher.final('hex')
|
||||||
|
|
||||||
|
return {
|
||||||
|
ENCRYPTED_EMAIL: encrypted_email,
|
||||||
|
IV: iv.toString('hex'),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -328,7 +328,8 @@ function formatMessage(message, callback) {
|
||||||
EMAIL: message.subscription.email,
|
EMAIL: message.subscription.email,
|
||||||
FIRST_NAME: message.subscription.firstName,
|
FIRST_NAME: message.subscription.firstName,
|
||||||
LAST_NAME: message.subscription.lastName,
|
LAST_NAME: message.subscription.lastName,
|
||||||
FULL_NAME: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' ')
|
FULL_NAME: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' '),
|
||||||
|
...tools.artstationMergeTags(message.subscription),
|
||||||
};
|
};
|
||||||
|
|
||||||
let encryptionKeys = [];
|
let encryptionKeys = [];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue