1
0
mirror of https://github.com/eleith/emailjs.git synced 2024-07-05 20:10:37 +00:00

backwards compatible support for older version of node

This commit is contained in:
eleith 2016-09-12 15:58:20 +00:00
parent 80cfe78795
commit 69b0489f6d
2 changed files with 52 additions and 16 deletions

View File

@ -1,7 +1,7 @@
{
"name": "emailjs",
"description": "send text/html emails and attachments (files, streams and strings) from node.js to any smtp server",
"version": "1.0.6",
"version": "1.0.7",
"author": "eleith",
"contributors": [
"izuzak",
@ -16,7 +16,8 @@
"dependencies": {
"addressparser": "^0.3.2",
"mimelib": "0.2.14",
"moment": "= 2.11.2"
"moment": "= 2.11.2",
"starttls": "1.0.1"
},
"optionalDependencies": {
"bufferjs": "=1.1.0"
@ -29,7 +30,7 @@
"iconv": "2.1.6"
},
"engine": [
"node >= 4"
"node >= 0.10"
],
"main": "email.js",
"scripts": {

View File

@ -7,6 +7,7 @@ var os = require('os');
var tls = require('tls');
var util = require('util');
var events = require('events');
var starttls = require('starttls');
var SMTPResponse = require('./response');
var SMTPError = require('./error');
@ -241,22 +242,56 @@ SMTP.prototype = {
err.message += " while establishing a starttls session";
caller(callback, err);
} else {
var secured_socket = new tls.TLSSocket(self.sock, {
secureContext: tls.createSecureContext ? tls.createSecureContext(self.tls) : crypto.createCredentials(self.tls)
});
// support new API
if (tls.TLSSocket) {
var secured_socket = new tls.TLSSocket(self.sock, {
secureContext: tls.createSecureContext ? tls.createSecureContext(self.tls) : crypto.createCredentials(self.tls)
});
secured_socket.on('error', function(err) {
self.close(true);
caller(callback, err);
});
secured_socket.on('error', function(err) {
self.close(true);
caller(callback, err);
});
self._secure = true;
self.sock = secured_socket;
self._secure = true;
self.sock = secured_socket;
SMTPResponse.monitor(self.sock, self.timeout, function() {
self.close(true);
});
caller(callback, msg.data);
SMTPResponse.monitor(self.sock, self.timeout, function() {
self.close(true);
});
caller(callback, msg.data);
} else {
var secured_socket = null;
var secured = function() {
self._secure = true;
self.sock = secured_socket;
var error = function(err) {
self.close(true);
caller(callback, err);
};
SMTPResponse.monitor(self.sock, self.timeout, function() {
self.close(true);
});
caller(callback, msg.data);
};
//secured_socket = starttls.secure(self.sock, self.tls, secured);
secured_socket = starttls({
socket: self.sock,
host: self.host,
port: self.port,
pair: tls.createSecurePair(
tls.createSecureContext ? tls.createSecureContext(self.tls) : crypto.createCredentials(self.tls),
false)
}, secured).cleartext;
secured_socket.on('error', function(err) {
self.close(true);
caller(callback, err);
});
}
}
};