Skip to main content
Glama

mcp-google-sheets

send-email.ts2.83 kB
import { ApFile, createAction, Property } from '@activepieces/pieces-framework'; import { Client } from '@microsoft/microsoft-graph-client'; import { BodyType, Message } from '@microsoft/microsoft-graph-types'; import { microsoftOutlookAuth } from '../common/auth'; export const sendEmailAction = createAction({ auth: microsoftOutlookAuth, name: 'send-email', displayName: 'Send Email', description: 'Sends an email using Microsoft Outlook.', props: { recipients: Property.Array({ displayName: 'To Email(s)', required: true, }), ccRecipients: Property.Array({ displayName: 'CC Email(s)', required: false, defaultValue: [], }), bccRecipients: Property.Array({ displayName: 'BCC Email(s)', required: false, defaultValue: [], }), subject: Property.ShortText({ displayName: 'Subject', required: true, }), bodyFormat: Property.StaticDropdown({ displayName: 'Body Format', required: true, defaultValue: 'text', options: { disabled: false, options: [ { label: 'HTML', value: 'html' }, { label: 'Text', value: 'text' }, ], }, }), body: Property.LongText({ displayName: 'Body', required: true, }), attachments: Property.Array({ displayName: 'Attachments', required: false, defaultValue: [], properties: { file: Property.File({ displayName: 'File', required: true, }), fileName: Property.ShortText({ displayName: 'File Name', required: false, }), }, }), }, async run(context) { const recipients = context.propsValue.recipients as string[]; const ccRecipients = context.propsValue.ccRecipients as string[]; const bccRecipients = context.propsValue.bccRecipients as string[]; const attachments = context.propsValue.attachments as Array<{ file: ApFile; fileName: string }>; const { subject, body, bodyFormat } = context.propsValue; const mailPayload: Message = { subject, body: { content: body, contentType: bodyFormat as BodyType, }, toRecipients: recipients.map((mail) => ({ emailAddress: { address: mail, }, })), ccRecipients: ccRecipients.map((mail) => ({ emailAddress: { address: mail, }, })), bccRecipients: bccRecipients.map((mail) => ({ emailAddress: { address: mail, }, })), attachments: attachments.map((attachment) => ({ '@odata.type': '#microsoft.graph.fileAttachment', name: attachment.fileName || attachment.file.filename, contentBytes: attachment.file.base64, })), }; const client = Client.initWithMiddleware({ authProvider: { getAccessToken: () => Promise.resolve(context.auth.access_token), }, }); const response = await client.api('/me/sendMail').post({ message: mailPayload, saveToSentItems: 'true', }); return response; }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server