Skip to content

Commit 3d4d24e

Browse files
authored
Find Email, include subject and sender in plain-text (#17039)
1 parent e8b546f commit 3d4d24e

File tree

2 files changed

+39
-15
lines changed

2 files changed

+39
-15
lines changed

components/gmail/actions/find-email/find-email.mjs

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export default {
66
key: "gmail-find-email",
77
name: "Find Email",
88
description: "Find an email using Google's Search Engine. [See the docs](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/list)",
9-
version: "0.1.1",
9+
version: "0.1.2",
1010
type: "action",
1111
props: {
1212
gmail,
@@ -64,28 +64,52 @@ export default {
6464
(h) => h.name.toLowerCase() === "message-id",
6565
);
6666
if (messageIdHeader) {
67-
message.message_id = messageIdHeader.value;
67+
message.message_id = messageIdHeader.value.replace(/[<>]/g, "");
6868
}
6969

70-
if (message.payload?.body?.data && !Array.isArray(message.payload.parts)) {
71-
const decodedBody = utils.decodeBase64Url(message.payload.body.data);
72-
if (this.withTextPayload) {
70+
if (message.internalDate) {
71+
message.date = new Date(parseInt(message.internalDate)).toISOString();
72+
}
73+
74+
const senderHeader = message.payload?.headers?.find(
75+
(h) => h.name.toLowerCase() === "from",
76+
);
77+
if (senderHeader) {
78+
message.sender = senderHeader.value;
79+
}
80+
81+
const recipientHeader = message.payload?.headers?.find(
82+
(h) => h.name.toLowerCase() === "to",
83+
);
84+
if (recipientHeader) {
85+
message.recipient = recipientHeader.value;
86+
}
87+
88+
const subjectHeader = message.payload?.headers?.find(
89+
(h) => h.name.toLowerCase() === "subject",
90+
);
91+
if (subjectHeader) {
92+
message.subject = subjectHeader.value;
93+
}
94+
95+
if (this.withTextPayload) {
96+
if (message.payload?.body?.data && !Array.isArray(message.payload.parts)) {
97+
const decodedBody = utils.decodeBase64Url(message.payload.body.data);
7398
newPayload += convert(decodedBody);
74-
} else {
75-
message.payload.body.text = decodedBody;
7699
}
77-
}
78100

79-
if (Array.isArray(message.payload?.parts)) {
80-
if (this.withTextPayload) {
101+
if (Array.isArray(message.payload?.parts)) {
81102
newPayload += utils.extractTextFromParts(message.payload.parts);
82-
} else {
83-
utils.attachTextToParts(message.payload.parts);
84103
}
85-
}
86104

87-
if (this.withTextPayload) {
88105
message.payload = newPayload;
106+
} else {
107+
if (message.payload?.body?.data && !Array.isArray(message.payload.parts)) {
108+
message.payload.body.text = utils.decodeBase64Url(message.payload.body.data);
109+
}
110+
if (Array.isArray(message.payload?.parts)) {
111+
utils.attachTextToParts(message.payload.parts);
112+
}
89113
}
90114
}
91115

components/gmail/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/gmail",
3-
"version": "0.3.4",
3+
"version": "0.3.5",
44
"description": "Pipedream Gmail Components",
55
"main": "gmail.app.mjs",
66
"keywords": [

0 commit comments

Comments
 (0)