',
+
+ // Subject of the message
+ subject: 'Nodemailer is unicode friendly ✔', //
+
+ // plaintext body
+ text: 'Hello to myself!',
+
+ // HTML body
+ html: 'Hello to myself 
' +
+ 'Here\'s a nyan cat for you as an embedded attachment:

',
+
+ // An array of attachments
+ attachments: [
+
+ // String attachment
+ {
+ fileName: 'notes.txt',
+ contents: 'Some notes about this e-mail',
+ contentType: 'text/plain' // optional, would be detected from the filename
+ },
+
+ // Binary Buffer attachment
+ {
+ fileName: 'image.png',
+ contents: new Buffer('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/' +
+ '//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U' +
+ 'g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC', 'base64'),
+
+ cid: 'note@node' // should be as unique as possible
+ },
+
+ // File Stream attachment
+ {
+ fileName: 'nyancat.gif',
+ filePath: __dirname + "/nyan.gif",
+ cid: 'nyan@node' // should be as unique as possible
+ }
+ ]
+};
+
+console.log('Sending Mail');
+
+transport.sendMail(message, function (error) {
+ if (error) {
+ console.log('Error occured');
+ console.log(error.message);
+ return;
+ }
+ console.log('Message sent successfully!');
+});
\ No newline at end of file
diff --git a/nodemailer/nodemailer.d.ts b/nodemailer/nodemailer.d.ts
new file mode 100644
index 000000000..7d84ef447
--- /dev/null
+++ b/nodemailer/nodemailer.d.ts
@@ -0,0 +1,89 @@
+// Type definitions for Nodemailer
+// Nodemailer is an easy to use module to send e-mails with Node.JS (using SMTP or sendmail or Amazon SES) and is unicode friendly .
+// Project: https://github.com/andris9/Nodemailer
+// Definitions by: Vincent Bortone
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+class Transport {
+ static transports: {
+ SMTP: Transport;
+ SES: Transport;
+ SENDMAIL: Transport;
+ STUB: Transport;
+ };
+
+ constructor(type: string, options?: any);
+ options: Object;
+ transportType: string;
+ sendMailWithTransport(emailMessage: MailComposer, callback?: (err: Error) => any): any;
+ useDKIM(dkim: DKIMOptions);
+ close(callback?: (err: Error) => any);
+ sendMail(message: MailComposer, callback?: (err: Error) => any): any;
+ send_mail(message:MailComposer, callback?: (err: Error) => any): any;
+}
+
+interface NodeMailerAttachment {
+ fileName: string;
+ filePath?: string;
+ contents?: any;
+ contentType?: string;
+ cid?: string;
+}
+
+interface MailComposer {
+ from: string; // sender info
+ to: string; // Comma separated list of recipients
+ subject: string; // Subject of the message
+ headers?: {};
+ text?: string; // plaintext body
+ html?: string; // HTML body
+ attachments?: NodeMailerAttachment[]; // An array of attachments
+ forceEmbeddedImages?: bool;
+}
+
+interface DKIMOptions{
+ domainName: string; // signing domain
+ keySelector: string; // selector name (in this case there's a dkim._domainkey.do-not-trust.node.ee TXT record set up)
+ privateKey: any;
+}
+
+class XOAuthGenerator {
+ constructor(options: XOAuthGeneratorOptions);
+ generate(callback: () => any): string;
+}
+
+interface XOAuthGeneratorOptions {
+ user: string;
+ consumerKey: string; // optional
+ consumerSecret: string; // optional
+ token: string;
+ tokenSecret: string;
+}
+
+interface XOAuth2Options {
+ user: string;
+ clientId: string;
+ clientSecret: string;
+ refreshToken: string;
+}
+
+interface NodemailerTransportOptions {
+ service?: string;
+ auth?: {
+ user?: string;
+ pass?: string;
+ XOAuthToken?: XOAuthGenerator;
+ XOAuth2?: XOAuth2Options;
+ };
+ debug?: bool;
+ AWSAccessKeyID?: string;
+ AWSSecretKey: string;
+ ServiceUrl: string;
+}
+
+interface Nodemailer {
+ createTransport(type: string): Transport;
+ createTransport(type: string, options: NodemailerTransportOptions): Transport;
+ createTransport(type: string, path: string): Transport;
+ createXOAuthGenerator(options: XOAuthGeneratorOptions): XOAuthGenerator;
+}
\ No newline at end of file