UNPKG

nodemailer-mailchimp-transactional

Version:

Mailchimp transactional transporter for nodemailer

34 lines (31 loc) 1.66 kB
import { Transport, SentMessageInfo } from 'nodemailer'; import { ApiClient, MessagesMessage, BaseRequest, MessagesSendTemplateRequest } from '@mailchimp/mailchimp_transactional'; import { Options } from 'nodemailer/lib/mailer'; import MailMessage from 'nodemailer/lib/mailer/mail-message'; import SendmailTransport from 'nodemailer/lib/sendmail-transport'; type MappableNodemailerFields = "from" | "to" | "cc" | "bcc" | "replyTo" | "subject" | "text" | "html" | "headers" | "priority"; type OverlappingMailchimpFields = "from_email" | "from_name" | "to" | "subject" | "html" | "text" | "headers" | "important" | "bcc_address"; interface MailchimpMessage extends Pick<Options, MappableNodemailerFields>, Omit<MessagesMessage, OverlappingMailchimpFields>, BaseRequest { template?: Pick<MessagesSendTemplateRequest, "template_content" | "template_name">; async?: boolean; ip_pool?: string; send_at?: string; } interface MailchimpTransportOptions { apiKey: string; senderMail?: string; senderName?: string; } declare class MailchimpTransport implements Transport { name: string; version: string; client: ApiClient; options: MailchimpTransportOptions; constructor(options: MailchimpTransportOptions); send(mail: MailMessage<SendmailTransport.SentMessageInfo>, callback: (err: Error | null, info?: SentMessageInfo) => void): void; private sendWithTemplate; private sendStandardEmail; private buildMailchimpMessage; } declare const MailchimpTransactionalTransport: (options: MailchimpTransportOptions) => MailchimpTransport; export { type MailchimpMessage, MailchimpTransactionalTransport as default };