nodemailer-mailchimp-transactional
Version:
Mailchimp transactional transporter for nodemailer
34 lines (31 loc) • 1.66 kB
TypeScript
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 };