UNPKG

3.26 kBTypeScriptView Raw
1// Type definitions for Nodemailer 6.4
2// Project: https://github.com/nodemailer/nodemailer, https://nodemailer.com
3// Definitions by: Rogier Schouten <https://github.com/rogierschouten>
4// Piotr Roszatycki <https://github.com/dex4er>
5// Daniel Chao <https://github.com/bioball>
6// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
7// TypeScript Version: 3.3
8
9/// <reference types="node" />
10
11import JSONTransport = require('./lib/json-transport');
12import Mail = require('./lib/mailer');
13import MailMessage = require('./lib/mailer/mail-message');
14import SendmailTransport = require('./lib/sendmail-transport');
15import SESTransport = require('./lib/ses-transport');
16import SMTPPool = require('./lib/smtp-pool');
17import SMTPTransport = require('./lib/smtp-transport');
18import StreamTransport = require('./lib/stream-transport');
19
20export type SendMailOptions = Mail.Options;
21
22export type Transporter<T = any> = Mail<T>;
23
24export type SentMessageInfo = any;
25
26export interface Transport<T = any> {
27 mailer?: Transporter<T> | undefined;
28
29 name: string;
30 version: string;
31
32 send(mail: MailMessage<T>, callback: (err: Error | null, info: T) => void): void;
33
34 verify?(callback: (err: Error | null, success: true) => void): void;
35 verify?(): Promise<true>;
36
37 close?(): void;
38}
39
40export interface TransportOptions {
41 component?: string | undefined;
42}
43
44export interface TestAccount {
45 user: string;
46 pass: string;
47 smtp: { host: string; port: number; secure: boolean };
48 imap: { host: string; port: number; secure: boolean };
49 pop3: { host: string; port: number; secure: boolean };
50 web: string;
51}
52
53export function createTransport(
54 transport?: SMTPTransport | SMTPTransport.Options | string,
55 defaults?: SMTPTransport.Options,
56): Transporter<SMTPTransport.SentMessageInfo>;
57export function createTransport(transport: SMTPPool | SMTPPool.Options, defaults?: SMTPPool.Options): Transporter<SMTPPool.SentMessageInfo>;
58export function createTransport(
59 transport: SendmailTransport | SendmailTransport.Options,
60 defaults?: SendmailTransport.Options,
61): Transporter<SendmailTransport.SentMessageInfo>;
62export function createTransport(
63 transport: StreamTransport | StreamTransport.Options,
64 defaults?: StreamTransport.Options,
65): Transporter<StreamTransport.SentMessageInfo>;
66export function createTransport(
67 transport: JSONTransport | JSONTransport.Options,
68 defaults?: JSONTransport.Options,
69): Transporter<JSONTransport.SentMessageInfo>;
70export function createTransport(
71 transport: SESTransport | SESTransport.Options,
72 defaults?: SESTransport.Options,
73): Transporter<SESTransport.SentMessageInfo>;
74export function createTransport<T>(transport: Transport<T> | TransportOptions, defaults?: TransportOptions): Transporter<T>;
75
76export function createTestAccount(
77 apiUrl: string,
78 callback: (err: Error | null, testAccount: TestAccount) => void,
79): void;
80export function createTestAccount(callback: (err: Error | null, testAccount: TestAccount) => void): void;
81export function createTestAccount(apiUrl?: string): Promise<TestAccount>;
82
83export function getTestMessageUrl(info: SESTransport.SentMessageInfo | SMTPTransport.SentMessageInfo): string | false;
84
\No newline at end of file