Nodemailer: type definitions for the SMPT-specific options

As documented here:
https://github.com/andris9/nodemailer#setting-up-smtp

Added examples from the above source as tests.

The original definition of NodemailerTransportOptions looks questionable
with its AWS-specific fields, but leaving it alone for now since I'm
new to nodemailer.

Once typescript 0.9 is rolled out with its string parameter matcher,
that should be used for specifying the type of options of the second
parameter when the first one has value "SMTP".
This commit is contained in:
anchann
2013-05-05 10:41:51 +09:00
parent 9d5d85d89f
commit a66fe34169
2 changed files with 46 additions and 8 deletions
+23 -1
View File
@@ -80,4 +80,26 @@ transport.sendMail(message, function (error) {
return;
}
console.log('Message sent successfully!');
});
});
// From the SMTP section of https://npmjs.org/package/nodemailer README
var smptTransport1: Transport = nodemailer.createTransport("SMTP", {
service: "Gmail", // sets automatically host, port and connection security settings
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});
var smtpTransport2: Transport = nodemailer.createTransport("SMTP", {
host: "smtp.gmail.com", // hostname
secureConnection: true, // use SSL
port: 465, // port for secure SMTP
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});
+23 -7
View File
@@ -69,21 +69,37 @@ interface XOAuth2Options {
interface NodemailerTransportOptions {
service?: string;
auth?: {
user?: string;
pass?: string;
XOAuthToken?: XOAuthGenerator;
XOAuth2?: XOAuth2Options;
};
auth?: NodemailerAuthInterface;
debug?: bool;
AWSAccessKeyID?: string;
AWSSecretKey: string;
ServiceUrl: string;
}
interface NodemailerAuthInterface {
user?: string;
pass?: string;
XOAuthToken?: XOAuthGenerator;
XOAuth2?: XOAuth2Options;
}
interface NodemailerSMTPTransportOptions {
service?: string;
host?: string;
port?: number;
secureConnection?: bool;
name?: string;
auth: NodemailerAuthInterface;
ignoreTLS?: bool;
debug?: bool;
maxConnections?: number;
}
interface Nodemailer {
createTransport(type: string): Transport;
createTransport(type: string, options: NodemailerTransportOptions): Transport;
createTransport(type: string, options: NodemailerSMTPTransportOptions): Transport;
createTransport(type: string, path: string): Transport;
createXOAuthGenerator(options: XOAuthGeneratorOptions): XOAuthGenerator;
}
}