',
+
+ // 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;
}
-
- // if you don't want to use this transport object anymore, uncomment following line
- //smtpTransport.close(); // shut down the connection pool, no more messages
+ console.log('Message sent successfully!');
});
\ No newline at end of file
diff --git a/nodemailer/nodemailer.d.ts b/nodemailer/nodemailer.d.ts
index 6b4dc34206..7d84ef4474 100644
--- a/nodemailer/nodemailer.d.ts
+++ b/nodemailer/nodemailer.d.ts
@@ -1,61 +1,89 @@
// Type definitions for Nodemailer
-// JNodemailer is an easy to use module to send e-mails with Node.JS (using SMTP or sendmail or Amazon SES) and is unicode friendly .
+// 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: SMTPTransport,
- SES: SESTransport,
- SENDMAIL: SendmailTransport,
- STUB: StubTransport
+ SMTP: Transport;
+ SES: Transport;
+ SENDMAIL: Transport;
+ STUB: Transport;
};
- constructor(type: string, options?: Object);
+ constructor(type: string, options?: any);
options: Object;
- transportType: strng;
+ transportType: string;
sendMailWithTransport(emailMessage: MailComposer, callback?: (err: Error) => any): any;
useDKIM(dkim: DKIMOptions);
- close(callback?: (err: Error) => any));
+ close(callback?: (err: Error) => any);
+ sendMail(message: MailComposer, callback?: (err: Error) => any): any;
+ send_mail(message:MailComposer, callback?: (err: Error) => any): any;
}
-interface MailComposer {}
+interface NodeMailerAttachment {
+ fileName: string;
+ filePath?: string;
+ contents?: any;
+ contentType?: string;
+ cid?: string;
+}
-interface DKIMOptions{}
+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 XOAuthGenerator {}
+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;
-
-}
-
-interface NodeMailerMessageOptions {}
-
-// Module level exports
-interface NodemailerStatic {
- X_MAILER_NAME: string;
- X_MAILER_HOMEPAGE: string;
- createXOAuthGenerator(options: Object): XOAuthGenerator;
- createTransport(type: string, options: NodeMailerTransportOptions): Transport;
- sendMail(options: NodeMailerMessageOptions, callback?: (err: Error) => any): any;
- send_mail(options: NodeMailerMessageOptions, callback?: (err: Error) => any): any;
- stripHTML(str: string): string;
+ service?: string;
+ auth?: {
+ user?: string;
+ pass?: string;
+ XOAuthToken?: XOAuthGenerator;
+ XOAuth2?: XOAuth2Options;
+ };
+ debug?: bool;
+ AWSAccessKeyID?: string;
+ AWSSecretKey: string;
+ ServiceUrl: string;
}
interface Nodemailer {
- (options: NodeMailerMessageOptions): void;
- transport: Transport;
- options: NodeMailerMessageOptions;
- mailcomposer: MailComposer;
- generateUserAgentString(): string;
- getGlobalTransport(): Transport;
- validateSettings(callback: (err: Error) => any): void;
- sendMail(callback: () => any): void;
- generateMailObject(): void;
- setGeneralOptions(): void;
- setUserHeaders(): void;
- setModuleHeaders(): void;
- setAttachments(): void;
+ 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