%PDF- %PDF-
Direktori : /home/opti/workflow/node_modules/express-mailer/node_modules/nodemailer/lib/engines/ |
Current File : /home/opti/workflow/node_modules/express-mailer/node_modules/nodemailer/lib/engines/direct.js |
"use strict"; var createDirectmail = require("directmail"); // Expose to the world module.exports = DirectTransport; /** * <p>Generates a Transport object for DirectMail</p> * * <p>Possible options can be the following:</p> * * <ul> * <li><b>debug</b> - If true, logs output to console</li> * </ul> * * @constructor * @param {Object} options Options object for the DirectMail transport */ function DirectTransport(options){ this.directmail = createDirectmail(options); } // Setup version info for the transport DirectTransport.prototype.version = createDirectmail.version; /** * <p>Compiles a mailcomposer message and forwards it to handler that sends it.</p> * * @param {Object} emailMessage MailComposer object * @param {Function} callback Callback function to run when the sending is completed */ DirectTransport.prototype.sendMail = function(emailMessage, callback) { this.generateMessage(emailMessage, (function(err, email){ if(err){ return typeof callback == "function" && callback(err); } this.handleMessage(emailMessage, email, callback); }).bind(this)); }; /** * <p>Compiles and sends the request to SMTP with e-mail data</p> * * @param {Object} emailMessage MailComposer object * @param {String} email Compiled raw e-mail as a string * @param {Function} callback Callback function to run once the message has been sent */ DirectTransport.prototype.handleMessage = function(emailMessage, email, callback) { var statusHandler, envelope = emailMessage.getEnvelope(); try{ statusHandler = this.directmail.send({ from: envelope.from, recipients: envelope.to, message: email }); }catch(E){ if(typeof callback == "function"){ callback(E); } return; } if(typeof callback == "function"){ callback(null, { message: "Message Queued", messageId: emailMessage._messageId, statusHandler: statusHandler }); } }; /** * <p>Compiles the messagecomposer object to a string.</p> * * @param {Object} emailMessage MailComposer object * @param {Function} callback Callback function to run once the message has been compiled */ DirectTransport.prototype.generateMessage = function(emailMessage, callback) { var email = ""; emailMessage.on("data", function(chunk){ email += (chunk || "").toString("utf-8"); }); emailMessage.on("end", function(chunk){ email += (chunk || "").toString("utf-8"); callback(null, email); }); emailMessage.streamMessage(); };