Merge branch 'pull/528' into development-tb
This commit is contained in:
commit
bbbe671d59
2 changed files with 38 additions and 3 deletions
|
@ -391,6 +391,7 @@ class CampaignSender {
|
||||||
|
|
||||||
let status;
|
let status;
|
||||||
let response;
|
let response;
|
||||||
|
let responseId;
|
||||||
try {
|
try {
|
||||||
const info = await mailer.sendMassMail(mail);
|
const info = await mailer.sendMassMail(mail);
|
||||||
status = SubscriptionStatus.SUBSCRIBED;
|
status = SubscriptionStatus.SUBSCRIBED;
|
||||||
|
@ -407,6 +408,7 @@ class CampaignSender {
|
||||||
|
|
||||||
console.log(`response: ${info.response} messageId: ${info.messageId}`);
|
console.log(`response: ${info.response} messageId: ${info.messageId}`);
|
||||||
response = info.response || info.messageId;
|
response = info.response || info.messageId;
|
||||||
|
responseId = info.messageId.replace(/(^<|>$)/g, "") || response.split(/\s+/).pop();
|
||||||
|
|
||||||
await knex('campaigns').where('id', campaign.id).increment('delivered');
|
await knex('campaigns').where('id', campaign.id).increment('delivered');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -415,8 +417,6 @@ class CampaignSender {
|
||||||
await knex('campaigns').where('id', campaign.id).increment('delivered').increment('bounced');
|
await knex('campaigns').where('id', campaign.id).increment('delivered').increment('bounced');
|
||||||
}
|
}
|
||||||
|
|
||||||
const responseId = response.split(/\s+/).pop();
|
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
|
|
||||||
if (campaign.type === CampaignType.REGULAR || campaign.type === CampaignType.RSS_ENTRY) {
|
if (campaign.type === CampaignType.REGULAR || campaign.type === CampaignType.RSS_ENTRY) {
|
||||||
|
@ -443,4 +443,4 @@ class CampaignSender {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = CampaignSender;
|
module.exports = CampaignSender;
|
||||||
|
|
|
@ -254,4 +254,39 @@ router.postAsync('/zone-mta/sender-config/:sendConfigurationCid', async (req, re
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
router.postAsync('/postal', async (req, res) => {
|
||||||
|
|
||||||
|
if (typeof req.body === 'string') {
|
||||||
|
req.body = JSON.parse(req.body);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (req.body.event) {
|
||||||
|
|
||||||
|
case 'MessageDeliveryFailed':
|
||||||
|
if (req.body.payload.message && req.body.payload.message.message_id) {
|
||||||
|
const message = await campaigns.getMessageByResponseId(req.body.payload.message.message_id);
|
||||||
|
if (message) {
|
||||||
|
await campaigns.changeStatusByMessage(contextHelpers.getAdminContext(), message, SubscriptionStatus.BOUNCED, req.body.payload.status === 'HardFail');
|
||||||
|
log.verbose('Postal', 'Marked message %s as bounced', req.body.payload.message.message_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'MessageBounced':
|
||||||
|
if (req.body.payload.original_message && req.body.payload.original_message.message_id) {
|
||||||
|
const message = await campaigns.getMessageByResponseId(req.body.payload.original_message.message_id);
|
||||||
|
if (message) {
|
||||||
|
await campaigns.changeStatusByMessage(contextHelpers.getAdminContext(), message, SubscriptionStatus.BOUNCED, true);
|
||||||
|
log.verbose('Postal', 'Marked message %s as bounced', req.body.payload.original_message.message_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue