actions/send-message/send-message.mjs
import mailjetApp from "../../mailjet.app.mjs"; export default { key: "mailjet-send-message", name: "Send Message", description: "Send a message via Send API v3. Send API v3 is built mainly for speed, allowing you to send up to 100 messages in a single API call. [See the docs here](https://dev.mailjet.com/email/reference/send-emails/#v3_1_post_send)", type: "action", version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, props: { mailjetApp, fromEmail: { type: "string", label: "From Email", description: "Specifies the sender email address.", }, fromName: { type: "string", label: "From Name", description: "Sender name that will be displayed in the recipient's mailbox.", optional: true, }, sender: { type: "boolean", label: "Sender", description: "When true, default sender email address will be used to send the message, while the **From Email** will be displayed in the recipient's inbox. In such cases, it is not necessary for the **From Email** to be verified. However, the information will be displayed in the inbox as `From {from_email} via / sent on behalf of {sender_domain}`.", optional: true, }, to: { type: "string", label: "To", description: "The email address (and name, optionally) of the recipients. Acceptable formats are `john@example.com` or `<john@example.com>` or `\"John Doe\" <john@example.com>`. Can include multiple contacts, which should be separated by commas. Can be used together with **Cc** and **Bcc**.", optional: true, }, cc: { type: "string", label: "Cc", description: "The email address (and name, optionally) of a recipient who is supposed to receive a carbon copy (cc) of this message. Used together with **To** and **Bcc** (optional). Acceptable formats are `john@example.com` or `<john@example.com>` or `\"John Doe\" <john@example.com>`. Can include multiple contacts, which should be separated by commas.", optional: true, }, bcc: { type: "string", label: "Bcc", description: "The email address (and name, optionally) of a recipient who is supposed to receive a blind carbon copy (bcc) of this message. Use this when you do not want your other recipients to see that you are sending a copy of the message to this email address. Used together with **To** and **Cc** (optional). Acceptable formats are `john@example.com` or `<john@example.com>` or `\"John Doe\" <john@example.com>`. Can include multiple contacts, which should be separated by commas.", optional: true, }, subject: { type: "string", label: "Subject", description: "The email subject line.", optional: true, }, textPart: { type: "string", label: "Text Part", description: "Provides the Text part of the message. Mandatory, if the Html-part parameter is not specified.", optional: true, }, htmlPart: { type: "string", label: "HTML Part", description: "Provides the HTML part of the message. Mandatory, if the Text-part parameter is not specified.", optional: true, }, }, async run({ $ }) { const { fromEmail, fromName, sender, to, cc, bcc, subject, textPart, htmlPart, } = this; try { const { body: { Sent: response } } = await this.mailjetApp.sendMessage({ data: { "FromEmail": fromEmail, "FromName": fromName, "Sender": sender, "To": to, "Cc": cc, "Bcc": bcc, "Subject": subject, "Text-part": textPart, "Html-part": htmlPart, }, }); $.export("$summary", `Successfully sent email message with ID ${response[0].MessageID}`); return response[0]; } catch (error) { throw error.response?.res?.statusMessage ?? error; } }, };