Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: read ECONNRESET #203

Closed
hippich opened this issue Oct 19, 2013 · 21 comments
Closed

Error: read ECONNRESET #203

hippich opened this issue Oct 19, 2013 · 21 comments

Comments

@hippich
Copy link

hippich commented Oct 19, 2013

Getting this from time to time in long running server. I am using gmail.com for sending emails and it works very well, except when this excption kills process.

I installed longjohn to get slightly better tracebacks:

/app/node_modules/longjohn/dist/longjohn.js:181
        throw e;
              ^
Error: read ECONNRESET
    at errnoException (net.js:901:11)
    at onread (net.js:556:19)
---------------------------------------------
    at Readable.on (_stream_readable.js:689:33)
    at SMTPClient.connect (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:207:17)
    at process._tickCallback (node.js:415:13)
---------------------------------------------
    at module.exports (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:15:13)
    at SMTPConnectionPool._createConnection (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:163:33)
    at SMTPConnectionPool.sendMail (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:116:18)
    at SMTPTransport.sendMail (/app/node_modules/nodemailer/lib/engines/smtp.js:121:15)
    at Transport.sendMailWithTransport (/app/node_modules/nodemailer/lib/transport.js:66:20)
    at Nodemailer.sendMail (/app/node_modules/nodemailer/lib/nodemailer.js:193:20)
    at /app/node_modules/nodemailer/lib/nodemailer.js:76:20
    at Nodemailer.validateSettings (/app/node_modules/nodemailer/lib/nodemailer.js:180:5)
---------------------------------------------
    at enqueue (/app/node_modules/bookshelf/node_modules/when/when.js:807:4)
    at scheduleConsumers (/app/node_modules/bookshelf/node_modules/when/when.js:493:3)
    at promiseResolve (/app/node_modules/bookshelf/node_modules/when/when.js:325:4)
    at deferred.resolve.deferred.resolver.resolve (/app/node_modules/bookshelf/node_modules/when/when.js:233:5)
    at [object Object].callback (/app/node_modules/bookshelf/node_modules/when/node/function.js:178:14)
    at Query.handleReadyForQuery (/app/node_modules/pg/lib/query.js:80:10)
    at [object Object].<anonymous> (/app/node_modules/pg/lib/client.js:151:26)

I am using nodemailer v0.5.3 and simplesmtp v0.3.10

Here is my mailing module I am using in my server:

var nodemailer = require("nodemailer");

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP", {
    service: "Gmail",
    auth: {
        user: "email@gmail.com",
        pass: "password"
    }
});

module.exports = function(options) {
    // send mail with defined transport object
    smtpTransport.sendMail(options, function(error, response) {
        if (error) {
            console.log(error);
        }
        else {
            console.log("Message sent: " + response.message);
        }
    });
};

I am using it like this:

var mail = require("./mailer");
...
mail(options);

It looks like error happens somewhere inside in simplesmtp and not handled by nodemailer. But if it is something I could work around in my code - I am very interested to hear about possible solution.

@sdogruyol
Copy link

I also get ECONNRESET errors from Smtp connection.

But instead i get a Error: write ECONNRESET.

Here's the full track from longjohn.

Error: write ECONNRESET
at errnoException (net.js:770:11)
at afterWrite (net.js:594:19)
at pipe (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/starttls.js:87:12)
at starttls (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/starttls.js:21:21)
at SMTPClient._starttlsHandler (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:527:22)
at SMTPClient._dataListener (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:468:20)
at SMTPClient._onData (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:642:14)
at EventEmitter.emit (events.js:96:17)
at onread (net.js:397:14)

@andris9
Copy link
Member

andris9 commented Oct 29, 2013

I've tried to debug this and I'm kind of confused - the error event should end up in pool.js:303 but for some reason it does not :S

@andris9
Copy link
Member

andris9 commented Oct 29, 2013

Probably related to https://github.com/andris9/simplesmtp/issues/47

@jeevankk
Copy link

@andris9

I am facing a similar issue with Hotmail/Outlook.com with large attachments. I tried with 3 attachments of total size 15Mb. I am getting the following error.

{ [Error: read ECONNRESET]
  code: 'ECONNRESET',
  errno: 'ECONNRESET',
  syscall: 'read',
  stage: 'data' }

But the major issue there is that the mail is sent successfully. But Nodemailer returned an error.

Can you help me to fix this issue?

@andris9
Copy link
Member

andris9 commented Jan 31, 2014

Supporting large messages is currently low priority and I do not want to spend much time on it. Pull requests are welcomed though.

@sthawali
Copy link

sthawali commented Feb 4, 2014

I also get the ECONNRESET error
Here is the full track.

Error: write ECONNRESET
    at SMTPConnectionPool._onConnectionError (/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:328:17)
    at SMTPClient.EventEmitter.emit (events.js:117:20)
    at SMTPClient._onError (/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:354:10)
    at CleartextStream.EventEmitter.emit (events.js:95:17)
    at Socket.onerror (tls.js:1425:17)
    at Socket.EventEmitter.emit (events.js:117:20)
    at onwriteError (_stream_writable.js:231:10)
    at onwrite (_stream_writable.js:249:5)
    at WritableState.onwrite (_stream_writable.js:97:5)
    at fireErrorCallbacks (net.js:438:13)
    at Socket._destroy (net.js:472:3)
    at Object.afterWrite (net.js:718:10)

@andris9
Copy link
Member

andris9 commented Feb 4, 2014

Could you state the related version numbers for the used modules as well? The line numbers usually do not match with the latest in the repository, so the error messages aren't very useful. Run npm shrinkwrap and copy nodemailer block with dependencies from npm-shrinkwrap.json to here (remember to remove the shrinkwrap file afterwards if you do need it).

@sthawali
Copy link

sthawali commented Feb 5, 2014

Thanks for quick feedback!

Here is the nodemailer block,

"nodemailer": {
  "version": "0.5.7",
  "from": "nodemailer@0.5.7",
  "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-0.5.7.tgz",
  "dependencies": {
    "mailcomposer": {
      "version": "0.2.4",
      "from": "mailcomposer@0.2.4",
      "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.4.tgz",
      "dependencies": {
        "mimelib": {
          "version": "0.2.14",
          "from": "mimelib@0.2.14",
          "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz",
          "dependencies": {
            "encoding": {
              "version": "0.1.7",
              "from": "encoding@0.1.7",
              "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.7.tgz",
              "dependencies": {
                "iconv-lite": {
                  "version": "0.2.11",
                  "from": "iconv-lite@0.2.11",
                  "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz"
                }
              }
            },
            "addressparser": {
              "version": "0.2.0",
              "from": "addressparser@0.2.0",
              "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.0.tgz"
            }
          }
        },
        "mime": {
          "version": "1.2.9",
          "from": "mime@1.2.9",
          "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz"
        },
        "ent": {
          "version": "0.1.0",
          "from": "ent@0.1.0",
          "resolved": "https://registry.npmjs.org/ent/-/ent-0.1.0.tgz"
        }
      }
    },
    "simplesmtp": {
      "version": "0.3.15",
      "from": "simplesmtp@0.3.15",
      "resolved": "https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.15.tgz",
      "dependencies": {
        "rai": {
          "version": "0.1.7",
          "from": "rai@0.1.7",
          "resolved": "https://registry.npmjs.org/rai/-/rai-0.1.7.tgz"
        },
        "xoauth2": {
          "version": "0.1.8",
          "from": "xoauth2@0.1.8"
        }
      }
    },
    "readable-stream": {
      "version": "1.1.9",
      "from": "readable-stream@1.1.9",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.9.tgz",
      "dependencies": {
        "core-util-is": {
          "version": "1.0.0",
          "from": "core-util-is@1.0.0",
          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.0.tgz"
        },
        "debuglog": {
          "version": "0.0.2",
          "from": "debuglog@0.0.2",
          "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz"
        }
      }
    }
  }
}

@andris9
Copy link
Member

andris9 commented Feb 5, 2014

The versions used are somewhat outdated. Could you reinstall nodemailer (remove it completely to get rid of the dependencies and then install again) and see if the error is still present.

@sthawali
Copy link

sthawali commented Feb 5, 2014

@andris9 Thanks! Will do this and try again.

@nickwaelkens
Copy link

Same problem here, when server is up for a "long" time…
Using nodemailer v0.6.1. Any fix for this yet?

@kiranbeing
Copy link

Got ETIMEDOUT when server is up for some time. Just after node server is restarted it sends out email with out any error.

@vinz243
Copy link

vinz243 commented Apr 13, 2014

I have the same problem with the direct example in your repo. Pleas help!

@Mickael-van-der-Beek
Copy link

Was there any progress on this issue?

@vinz243
Copy link

vinz243 commented May 31, 2014

Not for me alas. It seems to be due to windows, so I thinks I'll use c9.io to code this part.

@andris9
Copy link
Member

andris9 commented Jul 30, 2014

Nodemailer 1.0 uses a new SMTP client module, keep me updated if the issue still occurs

@andris9 andris9 closed this as completed Jul 30, 2014
@BenDavidJamin
Copy link

I know this is an old dead thread, but I'm having the same issue.

Using nodemailer v1.4.0

can connect with command line openssl

  openssl s_client -starttls smtp -host 172.16.204.200 -port 25 -debug

However, when I attempt to connect with nodemailer given these credentials I get the error above.

{
  host: '172.16.204.200',
  port: 25,
  debug: true,
  tls: {
    rejectUnauthorized: false
  }
}

Nodemailer connection.

        transport = nodemailer.createTransport(config.mail);

Actual error message.

 [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read'

@live-wire
Copy link

Even I'm getting this error:
{ [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }

I'm trying to use use service : 'gmail' in the transport object.
nodemailer version - 1.11.0

@SeunMatt
Copy link

I found this answer herer #170 and it worked.

{
host: "mail.hover.com",
secureConnection: true,
port: 465,
auth:{
user: "---",
pass: "---"
},
tls:{
secureProtocol: "TLSv1_method"
}
}

@12btcse1108
Copy link

{
"name": "DayThirteenSignUpForm",
"version": "1.0.0",
"dependencies": {
"accepts": {
"version": "1.3.5",
"from": "accepts@>=1.3.5 <1.4.0",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz"
},
"array-flatten": {
"version": "1.1.1",
"from": "array-flatten@1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
},
"body-parser": {
"version": "1.18.3",
"from": "body-parser@1.18.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz"
},
"bson": {
"version": "1.1.0",
"from": "bson@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz"
},
"bytes": {
"version": "3.0.0",
"from": "bytes@3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
},
"content-disposition": {
"version": "0.5.2",
"from": "content-disposition@0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz"
},
"content-type": {
"version": "1.0.4",
"from": "content-type@>=1.0.4 <1.1.0",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
},
"cookie": {
"version": "0.3.1",
"from": "cookie@0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
},
"cookie-signature": {
"version": "1.0.6",
"from": "cookie-signature@1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
},
"debug": {
"version": "2.6.9",
"from": "debug@2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
},
"depd": {
"version": "1.1.2",
"from": "depd@>=1.1.2 <1.2.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"destroy": {
"version": "1.0.4",
"from": "destroy@>=1.0.4 <1.1.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
},
"ee-first": {
"version": "1.1.1",
"from": "ee-first@1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
},
"encodeurl": {
"version": "1.0.2",
"from": "encodeurl@>=1.0.2 <1.1.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "escape-html@>=1.0.3 <1.1.0",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"etag": {
"version": "1.8.1",
"from": "etag@>=1.8.1 <1.9.0",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
},
"express": {
"version": "4.16.4",
"from": "express@latest",
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz"
},
"finalhandler": {
"version": "1.1.1",
"from": "finalhandler@1.1.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz"
},
"forwarded": {
"version": "0.1.2",
"from": "forwarded@>=0.1.2 <0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"
},
"fresh": {
"version": "0.5.2",
"from": "fresh@0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
},
"http-errors": {
"version": "1.6.3",
"from": "http-errors@>=1.6.3 <1.7.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz"
},
"iconv-lite": {
"version": "0.4.23",
"from": "iconv-lite@0.4.23",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz"
},
"inherits": {
"version": "2.0.3",
"from": "inherits@2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"ipaddr.js": {
"version": "1.8.0",
"from": "ipaddr.js@1.8.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz"
},
"media-typer": {
"version": "0.3.0",
"from": "media-typer@0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
},
"memory-pager": {
"version": "1.1.0",
"from": "memory-pager@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz",
"optional": true
},
"merge-descriptors": {
"version": "1.0.1",
"from": "merge-descriptors@1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
},
"methods": {
"version": "1.1.2",
"from": "methods@>=1.1.2 <1.2.0",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
},
"mime": {
"version": "1.4.1",
"from": "mime@1.4.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz"
},
"mime-db": {
"version": "1.37.0",
"from": "mime-db@>=1.37.0 <1.38.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz"
},
"mime-types": {
"version": "2.1.21",
"from": "mime-types@>=2.1.18 <2.2.0",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz"
},
"mongodb": {
"version": "3.1.9",
"from": "mongodb@latest",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.9.tgz"
},
"mongodb-core": {
"version": "3.1.8",
"from": "mongodb-core@3.1.8",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.8.tgz"
},
"ms": {
"version": "2.0.0",
"from": "ms@2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
},
"negotiator": {
"version": "0.6.1",
"from": "negotiator@0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
},
"nodemailer": {
"version": "4.7.0",
"from": "nodemailer@latest",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.7.0.tgz"
},
"on-finished": {
"version": "2.3.0",
"from": "on-finished@>=2.3.0 <2.4.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
},
"parseurl": {
"version": "1.3.2",
"from": "parseurl@>=1.3.2 <1.4.0",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz"
},
"path-to-regexp": {
"version": "0.1.7",
"from": "path-to-regexp@0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
},
"proxy-addr": {
"version": "2.0.4",
"from": "proxy-addr@>=2.0.4 <2.1.0",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz"
},
"qs": {
"version": "6.5.2",
"from": "qs@6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
},
"range-parser": {
"version": "1.2.0",
"from": "range-parser@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
},
"raw-body": {
"version": "2.3.3",
"from": "raw-body@2.3.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz"
},
"require_optional": {
"version": "1.0.1",
"from": "require_optional@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz"
},
"resolve-from": {
"version": "2.0.0",
"from": "resolve-from@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
},
"safe-buffer": {
"version": "5.1.2",
"from": "safe-buffer@5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
},
"safer-buffer": {
"version": "2.1.2",
"from": "safer-buffer@>=2.1.2 <3.0.0",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
},
"saslprep": {
"version": "1.0.2",
"from": "saslprep@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz",
"optional": true
},
"semver": {
"version": "5.6.0",
"from": "semver@>=5.1.0 <6.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz"
},
"send": {
"version": "0.16.2",
"from": "send@0.16.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz"
},
"serve-static": {
"version": "1.13.2",
"from": "serve-static@1.13.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz"
},
"setprototypeof": {
"version": "1.1.0",
"from": "setprototypeof@1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"
},
"sparse-bitfield": {
"version": "3.0.3",
"from": "sparse-bitfield@>=3.0.3 <4.0.0",
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"optional": true
},
"statuses": {
"version": "1.4.0",
"from": "statuses@>=1.4.0 <1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz"
},
"type-is": {
"version": "1.6.16",
"from": "type-is@>=1.6.16 <1.7.0",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz"
},
"unpipe": {
"version": "1.0.0",
"from": "unpipe@1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
},
"utils-merge": {
"version": "1.0.1",
"from": "utils-merge@1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
},
"vary": {
"version": "1.1.2",
"from": "vary@>=1.1.2 <1.2.0",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
}
}
}

@12btcse1108
Copy link

Could you state the related version numbers for the used modules as well? The line numbers usually do not match with the latest in the repository, so the error messages aren't very useful. Run npm shrinkwrap and copy nodemailer block with dependencies from npm-shrinkwrap.json to here (remember to remove the shrinkwrap file afterwards if you do need it).

The versions used are somewhat outdated. Could you reinstall nodemailer (remove it completely to get rid of the dependencies and then install again) and see if the error is still present.

facing the same issue, even having nodemailer@latest version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests