【发布时间】:2015-02-18 09:16:40
【问题描述】:
我在 Heroku 上遇到了 Nodemailer 问题,非常感谢您的帮助。
以前我的应用程序版本在 Heroku 上运行时没有问题,当我回滚到该版本时,它仍然可以正常运行。在最新版本的应用程序中,我没有对访问 Nodemailer 的代码进行任何更改,所以这对我来说真的没有意义。
nodemailer版本为:0.6.5
这是日志消息:
2015-02-18T04:29:57.730815+00:00 app[web.2]: POST /employer/53f44e3df4f8150200554eb7/job/ 200 32ms - 581b
2015-02-18T04:29:58.045066+00:00 app[web.2]: /app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:918
2015-02-18T04:29:58.045069+00:00 app[web.2]: this._xoauth2.reconnectCount = 0;
2015-02-18T04:29:58.045070+00:00 app[web.2]: ^
2015-02-18T04:29:58.041300+00:00 app[web.2]: Exit callback being invoked
2015-02-18T04:29:58.045072+00:00 app[web.2]: TypeError: Cannot assign to read only property 'reconnectCount' of false
2015-02-18T04:29:58.045073+00:00 app[web.2]: at SMTPClient._actionAUTHComplete (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:918:34)
2015-02-18T04:29:58.045075+00:00 app[web.2]: at SMTPClient._onData (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:352:29)
2015-02-18T04:29:58.045076+00:00 app[web.2]: at TLSSocket.emit (events.js:107:17)
2015-02-18T04:29:58.045078+00:00 app[web.2]: at readableAddChunk (_stream_readable.js:163:16)
2015-02-18T04:29:58.045079+00:00 app[web.2]: at TLSSocket.Readable.push (_stream_readable.js:126:10)
2015-02-18T04:29:58.045080+00:00 app[web.2]: at TCP.onread (net.js:529:20)
2015-02-18T04:29:58.769185+00:00 heroku[web.2]: Process exited with status 1
2015-02-18T04:29:58.780771+00:00 heroku[web.2]: State changed from up to crashed
2015-02-18T04:29:58.780771+00:00 heroku[web.2]: State changed from crashed to starting
2015-02-18T04:30:00.371578+00:00 heroku[web.2]: Starting process with command `node app.js`
2015-02-18T04:30:01.904015+00:00 app[web.2]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-02-18T04:30:01.904115+00:00 app[web.2]: Recommending WEB_CONCURRENCY=1
2015-02-18T04:30:02.288471+00:00 app[web.2]: Failed to load c++ bson extension, using pure JS version
2015-02-18T04:30:02.652326+00:00 app[web.2]: Started in PROD mode
2015-02-18T04:30:02.815284+00:00 app[web.2]: Express server listening on port 9622
2015-02-18T04:30:03.291115+00:00 heroku[web.2]: State changed from starting to up
我们可以看到它在“client.js”的第 918 行失败,错误为:
TypeError:无法分配给 false 的只读属性“reconnectCount”。
为什么要尝试将“false”分配给“reconnectCount”?
我的代码很简单:
app.locals.smtpTransport = nodemailer.createTransport('SMTP', { 服务:'Gmail', 授权:{ 用户:“example@gmail.com”, 通过:“pass123” } }); 然后我使用代码发送邮件,如:
req.app.locals.smtpTransport.sendMail(......
此代码适用于我的 Heroku 暂存实例,因此对我来说没有意义。
我已经记录了 Heroku 的支持请求,您可以提供的任何指导我都会传递给他们。
非常感谢您的帮助。
【问题讨论】:
标签: node.js heroku nodemailer