UNPKG

1.49 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { EventEmitter } from 'events';
4
5import { Transport, TransportOptions } from '..';
6
7import * as shared from './shared';
8
9import Mail = require('./mailer');
10import MailMessage = require('./mailer/mail-message');
11import MimeNode = require('./mime-node');
12
13declare namespace JSONTransport {
14 type MailOptions = Mail.Options;
15
16 interface Options extends MailOptions, TransportOptions {
17 jsonTransport: true;
18 skipEncoding?: boolean | undefined;
19 }
20
21 interface SentMessageInfo {
22 /** an envelope object {from:‘address’, to:[‘address’]} */
23 envelope: MimeNode.Envelope;
24 /** the Message-ID header value */
25 messageId: string;
26 /** JSON string */
27 message: string;
28 accepted: Array<string | Mail.Address>;
29 rejected: Array<string | Mail.Address>;
30 pending: Array<string | Mail.Address>;
31 response: string;
32 }
33}
34
35declare class JSONTransport implements Transport<JSONTransport.SentMessageInfo> {
36 options: JSONTransport.Options;
37
38 logger: shared.Logger;
39 mailer: Mail<JSONTransport.SentMessageInfo>;
40
41 name: string;
42 version: string;
43
44 constructor(options: JSONTransport.Options);
45
46 /** Compiles a mailcomposer message and forwards it to handler that sends it */
47 send(mail: MailMessage<JSONTransport.SentMessageInfo>, callback: (err: Error | null, info: JSONTransport.SentMessageInfo) => void): void;
48}
49
50export = JSONTransport;