UNPKG

nodemailer

Version:

Easy as cake e-mail sending from your Node.js applications

103 lines (102 loc) 5.5 kB
import Mail from './mailer/index.js'; import type { MailDefaults, SentMessageInfo, Transport, TransportOptions } from './mailer/index.js'; import type { SMTPPoolOptions, SMTPPoolSentMessageInfo } from './smtp-pool/index.js'; import type { SMTPTransportOptions, SMTPSentMessageInfo } from './smtp-transport/index.js'; import type { SendmailTransportOptions, SendmailSentMessageInfo } from './sendmail-transport/index.js'; import type { StreamTransportOptions, StreamSentMessageInfo } from './stream-transport/index.js'; import type { JSONTransportOptions, JSONSentMessageInfo } from './json-transport/index.js'; import type { SESTransportOptions, SESSentMessageInfo } from './ses-transport/index.js'; /** * Connection details of a service endpoint of an Ethereal test account */ export interface TestAccountService { host: string; port: number; secure: boolean; } /** * Ethereal test account returned by createTestAccount() */ export interface TestAccount { user: string; pass: string; smtp: TestAccountService; imap: TestAccountService; pop3: TestAccountService; web: string; /** true if the account can also receive external mail */ mxEnabled?: boolean | undefined; [key: string]: unknown; } /** * Callback for createTestAccount() */ export type TestAccountCallback = (err: Error | null, account: TestAccount) => void; /** * Configuration object of any of the bundled transports */ export type TransportConfig = SMTPTransportOptions | SMTPPoolOptions | SendmailTransportOptions | StreamTransportOptions | JSONTransportOptions | SESTransportOptions; /** * Creates a transporter object for sending e-mails * * @param transporter Transport configuration object, a connection URL or a transport plugin instance * @param defaults Default message fields that are merged into every message * @returns Mail instance wrapping the transport */ export declare function createTransport(transporter: SMTPPoolOptions & { pool: true; }, defaults?: MailDefaults): Mail<SMTPPoolSentMessageInfo>; export declare function createTransport(transporter: SendmailTransportOptions & { sendmail: true | string; }, defaults?: MailDefaults): Mail<SendmailSentMessageInfo>; export declare function createTransport(transporter: StreamTransportOptions & { streamTransport: true; }, defaults?: MailDefaults): Mail<StreamSentMessageInfo>; export declare function createTransport(transporter: JSONTransportOptions & { jsonTransport: true; }, defaults?: MailDefaults): Mail<JSONSentMessageInfo>; export declare function createTransport(transporter: SESTransportOptions & { SES: object; }, defaults?: MailDefaults): Mail<SESSentMessageInfo>; export declare function createTransport<T = SentMessageInfo>(transporter: Transport<T>, defaults?: MailDefaults): Mail<T>; export declare function createTransport(transporter?: SMTPTransportOptions | string, defaults?: MailDefaults): Mail<SMTPSentMessageInfo>; export declare function createTransport(transporter?: TransportConfig | Transport<any> | string, defaults?: MailDefaults): Mail<any>; /** * Creates a test account from the Ethereal service (https://ethereal.email) * * @param apiUrl Optional API endpoint, defaults to https://api.nodemailer.com * @param callback Callback function to run with the account object. If not set, a Promise is returned */ export declare function createTestAccount(callback: TestAccountCallback): void; export declare function createTestAccount(apiUrl: string | false | null | undefined, callback: TestAccountCallback): void; export declare function createTestAccount(apiUrl?: string | false | null): Promise<TestAccount>; /** * Resolves the Ethereal web URL for a message sent through an Ethereal test account * * @param info Result object of sendMail() * @returns URL of the message in the Ethereal web interface, or false if the response does not carry one */ export declare function getTestMessageUrl(info?: { response?: string | Buffer | null | undefined; } | false | null): string | false; declare const nodemailer: { createTransport: typeof createTransport; createTestAccount: typeof createTestAccount; getTestMessageUrl: typeof getTestMessageUrl; }; export default nodemailer; export type { Mail, MailDefaults, SentMessageInfo, Transport, TransportOptions }; export type { SendMailOptions, Transporter } from './mailer/index.js'; export type { NodemailerError, ErrorCode } from './errors.js'; export type { MailMessage, MailMessageData, PluginFunction, VerifyCallback } from './mailer/index.js'; export type { MailComposerOptions, MailComposerAttachment as Attachment, MailComposerAlternative as AttachmentLike, MailComposerIcalEvent as IcalAttachment, MailComposerListHeaders as ListHeaders } from './mail-composer/index.js'; export type { MimeNodeAddress as Address, MimeNodeHeaders as Headers } from './mime-node/index.js'; export type { SMTPConnectionOptions, SMTPConnectionAuth, SMTPEnvelope, SMTPEnvelopeDsn } from './smtp-connection/index.js'; export type { DKIMOptions } from './dkim/index.js'; export type { XOAuth2Options, XOAuth2Token } from './xoauth2/index.js'; export type { SMTPTransportOptions, SMTPSentMessageInfo }; export type { SMTPPoolOptions, SMTPPoolSentMessageInfo }; export type { SendmailTransportOptions, SendmailSentMessageInfo }; export type { StreamTransportOptions, StreamSentMessageInfo }; export type { JSONTransportOptions, JSONSentMessageInfo }; export type { SESTransportOptions, SESSentMessageInfo };