Skip to content

Commit 36b0b98

Browse files
author
Andre Rabold
committed
Updated SES support to contain mail body
1 parent 01a3288 commit 36b0b98

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function processIncoming(event) {
1313
require("./parsers/aws-health"),
1414
require("./parsers/inspector"),
1515
require("./parsers/codebuild"),
16-
require("./parsers/ses_email"),
16+
require("./parsers/ses-received"),
1717
];
1818

1919
// Execute all parsers and use the first successful result

src/parsers/aws-health.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class AwsHealthParser {
1616
}
1717

1818
// AWS Health Dashboard Message
19-
console.log("message =", JSON.stringify(message, null, 2));
2019
const accountId = _.get(message, "account");
2120
const detailType = _.get(message, "detail-type");
2221
const service = _.get(message, "detail.service");
Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ const BbPromise = require("bluebird"),
44
_ = require("lodash"),
55
Slack = require("../slack");
66

7-
class EmailParser {
7+
/**
8+
* Parses SES "Received" notifications incoming via SNS
9+
*/
10+
class SesReceivedParser {
811

912
parse(event) {
1013
return BbPromise.try(() => JSON.parse(_.get(event, "Records[0].Sns.Message", "{}")))
@@ -16,40 +19,35 @@ class EmailParser {
1619
}
1720

1821
// AWS SES Message
19-
console.log("message =", JSON.stringify(message, null, 2));
2022
const source = _.get(message, "mail.source");
21-
const messageId = _.get(message, "mail.messageId");
23+
const destination = _.get(message, "mail.destination");
2224
const timestamp = _.get(message, "mail.timestamp");
2325
const subject = _.get(message, "mail.commonHeaders.subject");
26+
const content = _.get(message, "content");
2427

25-
let color = Slack.COLORS.accent;
26-
27-
const fields = [{
28-
title: "Subject",
29-
value: subject,
30-
short: true
31-
}];
28+
const fields = [];
3229
if (source) {
3330
fields.push({
3431
title: "From",
3532
value: source,
3633
short: true
3734
});
3835
}
39-
if (subject) {
36+
if (destination) {
4037
fields.push({
41-
title: "Subject",
42-
value: subject,
38+
title: "To",
39+
value: _.join(destination, ",\n"),
4340
short: true
4441
});
4542
}
4643

4744
const slackMessage = {
4845
attachments: [{
4946
fallback: "New email received from SES",
50-
color: color,
47+
color: Slack.COLORS.accent,
48+
author_name: "Amazon SES",
5149
title: subject,
52-
text: "",
50+
text: content,
5351
fields: fields,
5452
ts: Slack.toEpochTime(new Date(timestamp))
5553
}]
@@ -59,4 +57,4 @@ class EmailParser {
5957
}
6058
}
6159

62-
module.exports = EmailParser;
60+
module.exports = SesReceivedParser;

0 commit comments

Comments
 (0)