2

Using Meteor 1.5 with email package installed.

I have tried both smtps and smtps, both are not working for me. Any suggestions that why I am facing this error?

ERROR LOG:

I20170719-19:56:59.430(5.5)? Exception while invoking method 'forgotPassword' Error: Hostname/IP doesn't match certificate's altnames: "Host: mail.xyz.com. is not in the cert's altnames: DNS:something.something.in, DNS:www.something.something.in"
I20170719-19:56:59.432(5.5)?     at Object.Future.wait (C:\Users\a\AppData\Local\.meteor\packages\meteor-tool\1.5.0\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:449:15)
I20170719-19:56:59.435(5.5)?     at Mail._syncSendMail (packages\meteor.js:213:24)
I20170719-19:56:59.437(5.5)?     at smtpSend (packages\email.js:110:13)
I20170719-19:56:59.443(5.5)?     at Object.Email.send (packages\email.js:168:5)
I20170719-19:56:59.447(5.5)?     at AccountsServer.Accounts.sendResetPasswordEmail (packages/accounts-password/password_server.js:614:9)
I20170719-19:56:59.451(5.5)?     at [object Object].Meteor.methods.forgotPassword (packages/accounts-password/password_server.js:546:12)
I20170719-19:56:59.461(5.5)?     at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1737:12)
I20170719-19:56:59.466(5.5)?     at packages/ddp-server/livedata_server.js:719:19
I20170719-19:56:59.468(5.5)?     at [object Object]._.extend.withValue (packages\meteor.js:1122:17)
I20170719-19:56:59.476(5.5)?     at packages/ddp-server/livedata_server.js:717:40
I20170719-19:56:59.478(5.5)?     - - - - -
I20170719-19:56:59.480(5.5)?     at Object.checkServerIdentity (tls.js:205:17)
I20170719-19:56:59.481(5.5)?     at TLSSocket.<anonymous> (_tls_wrap.js:1071:29)

I20170719-19:56:59.484(5.5)?     at emitNone (events.js:67:13)
I20170719-19:56:59.486(5.5)?     at TLSSocket.emit (events.js:166:7)
I20170719-19:56:59.487(5.5)?     at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:623:8)
I20170719-19:56:59.494(5.5)?     at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:453:38)

My SMTP settings are as below;

smtp = {
    username: 'info@xyz.com',
    password: 'info@2017',
    server:   'mail.xyz.com',
    port: 465,
    rejectUnauthorized : false
  }

process.env.MAIL_URL = 'smtps://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;
Ankur Soni
  • 5,725
  • 5
  • 50
  • 81

1 Answers1

3

The issue is that with newer version of Node (see link: Node.js Hostname/IP doesn't match certificate's altnames ) domains are being tested.

The correct "fix" is to get the server corrected, a (somewhat dangerous) fix is to tell Node to reject Unauthorized, which you tried to do, however the smtp object in your source get's thrown away and is never passed to Meteor.

Try adding the following:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;

right after

process.env.MAIL_URL = 'smtps://' + ...

(Note: this suggestion is derived from: (Unable to verify leaf signature) but I have tested that this resolves the problem).

Stephen Orr
  • 291
  • 3
  • 7