mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-26 05:04:05 -08:00
feat(Gmail Node): Add support for creating drafts using an alias (#8728)
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
This commit is contained in:
parent
2dd0b329ca
commit
3986356c89
|
@ -186,6 +186,52 @@ export const draftFields: INodeProperties[] = [
|
||||||
default: {},
|
default: {},
|
||||||
description: 'Array of supported attachments to add to the message',
|
description: 'Array of supported attachments to add to the message',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'BCC',
|
||||||
|
name: 'bccList',
|
||||||
|
type: 'string',
|
||||||
|
description:
|
||||||
|
'The email addresses of the blind copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.',
|
||||||
|
placeholder: 'info@example.com',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'CC',
|
||||||
|
name: 'ccList',
|
||||||
|
type: 'string',
|
||||||
|
description:
|
||||||
|
'The email addresses of the copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.',
|
||||||
|
placeholder: 'info@example.com',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'From Alias Name or ID',
|
||||||
|
name: 'fromAlias',
|
||||||
|
type: 'options',
|
||||||
|
default: '',
|
||||||
|
description:
|
||||||
|
'Select the alias to send the email from. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
||||||
|
typeOptions: {
|
||||||
|
loadOptionsMethod: 'getGmailAliases',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Send Replies To',
|
||||||
|
name: 'replyTo',
|
||||||
|
type: 'string',
|
||||||
|
placeholder: 'reply@example.com',
|
||||||
|
default: '',
|
||||||
|
description: 'The email address that the reply message is sent to',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'To Email',
|
||||||
|
name: 'sendTo',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
placeholder: 'info@example.com',
|
||||||
|
description:
|
||||||
|
'The email addresses of the recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -197,6 +197,27 @@ export class GmailV2 implements INodeType {
|
||||||
|
|
||||||
return returnData;
|
return returnData;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async getGmailAliases(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
|
||||||
|
const returnData: INodePropertyOptions[] = [];
|
||||||
|
const { sendAs } = await googleApiRequest.call(
|
||||||
|
this,
|
||||||
|
'GET',
|
||||||
|
'/gmail/v1/users/me/settings/sendAs',
|
||||||
|
);
|
||||||
|
|
||||||
|
for (const alias of sendAs || []) {
|
||||||
|
const displayName = alias.isDefault
|
||||||
|
? `${alias.sendAsEmail} (Default)`
|
||||||
|
: alias.sendAsEmail;
|
||||||
|
returnData.push({
|
||||||
|
name: displayName,
|
||||||
|
value: alias.sendAsEmail,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnData;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -528,6 +549,7 @@ export class GmailV2 implements INodeType {
|
||||||
let cc = '';
|
let cc = '';
|
||||||
let bcc = '';
|
let bcc = '';
|
||||||
let replyTo = '';
|
let replyTo = '';
|
||||||
|
let fromAlias = '';
|
||||||
let threadId = null;
|
let threadId = null;
|
||||||
|
|
||||||
if (options.sendTo) {
|
if (options.sendTo) {
|
||||||
|
@ -546,6 +568,10 @@ export class GmailV2 implements INodeType {
|
||||||
replyTo = prepareEmailsInput.call(this, options.replyTo as string, 'ReplyTo', i);
|
replyTo = prepareEmailsInput.call(this, options.replyTo as string, 'ReplyTo', i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.fromAlias) {
|
||||||
|
fromAlias = options.fromAlias as string;
|
||||||
|
}
|
||||||
|
|
||||||
if (options.threadId && typeof options.threadId === 'string') {
|
if (options.threadId && typeof options.threadId === 'string') {
|
||||||
threadId = options.threadId;
|
threadId = options.threadId;
|
||||||
}
|
}
|
||||||
|
@ -567,6 +593,7 @@ export class GmailV2 implements INodeType {
|
||||||
}
|
}
|
||||||
|
|
||||||
const email: IEmail = {
|
const email: IEmail = {
|
||||||
|
from: fromAlias,
|
||||||
to,
|
to,
|
||||||
cc,
|
cc,
|
||||||
bcc,
|
bcc,
|
||||||
|
|
Loading…
Reference in a new issue