Heroku 与 NodeMailer 的问题

2024-02-07

我在 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 行失败,错误如下:

类型错误:无法分配给 false 的只读属性“reconnectCount”。

为什么它会尝试将“false”分配给“reconnectCount”?

我的代码非常简单:

app.locals.smtpTransport = nodemailer.createTransport('SMTP', { 服务:“Gmail”, 授权:{ 用户:“[电子邮件受保护] /cdn-cgi/l/email-protection“, 通过:“pass123” } }); 然后我使用代码发送邮件,如下所示:

req.app.locals.smtpTransport.sendMail( ......

这段代码适用于我的 Heroku 暂存实例,因此这对我来说没有意义。

我已向 Heroku 记录了支持请求,我将转达您可以提供的任何指导。

非常感谢你的帮助。


我刚刚收到 Nodemailer 的以下回复:

您可能正在 iojs 中运行 Nodemailer。 Node 0.12 和 iojs 仅支持最新版本的 Nodemailer,因此您应该自行升级或修复第 918 行,如下所示:

if(this._xoauth2){
    this._xoauth2.reconnectCount = 0;
}

ES5 中允许将属性设置为布尔值,但 iojs 运行 ES6 并且尝试在 ES6 严格模式下设置属性会引发错误。

我想我已经通过将包文件中的 node.js 版本显式设置为使用 ES5 的旧版本来解决这个问题。

这解决了我的问题。吸取的教训是始终在包文件中设置nodejs版本,否则Heroku使用最新版本,并且它可能与您的模块不兼容。

非常感谢 Nodemailer,他们很快就回复了我,并做出了很好的回应。

希望这对其他人有帮助。

Thanks.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Heroku 与 NodeMailer 的问题 的相关文章

随机推荐

  • Visual Studio 2010 中的编程数据断点

    我一直在尝试使用编程数据断点 就像CBreakpoint http www morearty com code breakpoint 例如 通过使用SetThreadContext http msdn microsoft com en us
  • 使用 selenium2library 和 Robot Framework 验证页面中是否存在 2 个文本中的一个文本

    我想测试页面是否包含 TEXT1 或 TEXT2 页面应包含 TEXT1 或 TEXT2 有什么建议我该怎么做 目前我只能检查一篇文本 您可以使用 Page Should Contain Element http rtomac github
  • 列向量与行意味着——与 std::accumulate?

    为了尽可能地懒惰 我在矩阵中读为 vector lt vector
  • 除了动态参数和可选参数之外,C# 4.0 还有哪些新功能?

    所以 C 4 0 昨天出来了 它引入了备受争议的dynamic关键字 命名参数和可选参数 较小的改进是隐含的ref识别 COM 方法上的索引属性和默认属性 逆变和协变 实际上是 NET CLR 功能 不仅仅是 C 以及 真的是这样吗 是dy
  • 找出 Uneaten Leaves 算法错误

    我在面试挑战中遇到了这个问题 K 条毛毛虫正在吃掉 N 片叶子 每条毛毛虫 以独特的顺序从一片叶子落到另一片叶子 所有毛毛虫都开始 在位置 0 处的树枝上 并落在位置之间的叶子上 1 和 N 每条毛毛虫 j 都有一个关联的跳跃数 Aj A
  • 由于延迟加载而使用 Pony ORM 的 DatabaseSessionIsOver?

    我正在使用 Pony ORM 作为烧瓶解决方案 并且遇到了以下问题 考虑以下 db session def get orders of the week self user date q select o for o in Order fo
  • 同步块和监视器对象

    您好 有人可以解释一下下面的代码中的同步代码是否会限制对线程的访问 如果是的话 它与我们使用 this 而不是 msg 作为监视对象有什么不同 public void display String msg synchronized msg
  • 使用 C 中的 GLib/GIO 从 Web 获取文件

    我应该使用什么函数使用 GLib GIO 库从网络获取文件 如果我的文件来自 gchar path http xxx yyyServer sharing temp txt 我应该怎么做才能下载它 对于本地文件 我只使用 fopen 和 fr
  • 理解Python内存分配和释放

    我最近遇到本文 http deeplearning net software theano tutorial python memory management html关于python内存分配 在这个页面中 它描述了 python 的内存使
  • 在 R 中进行矩阵乘法时的非一致性数组

    我正在尝试在 R 中实现内核岭回归 公式为 alpha lt lambda I K 1 y 拉姆达 0 1 I 与 K 大小相同的单位矩阵 y 是与 K 具有相同行数的特征向量 所以我在 R 中尝试了这个 I lt diag nrow df
  • 如何将 AWS Glue 作业的输出返回到调用 Step Function 工作流程?

    AWS Step Functions 允许调用 AWS Glue 作业 如下所述 https docs aws amazon com step functions latest dg connect glue html https docs
  • 合并冲突解决

    当 Git 中出现合并冲突时 如下所示的垃圾会被插入到冲突的文件中 三个问题 你如何阅读这些注释 解决这些合并冲突时可以使用哪些策略 是否有适用于 Mac 的 GUI 工具知道如何读取这些文件并并排显示两个版本 以便更轻松地解决问题 注意
  • 如何从 Composer 中全局删除包?

    我运行此命令进行全局安装PHPUnit composer global require phpunit phpunit 3 7 现在我想全局卸载PHPUnit 有任何想法吗 要删除全局安装的包 请运行 composer global rem
  • 如何保持 ARKit SCNNode 就位

    嘿 我正在想办法 如何保持简单节点的位置 当我在 ARKit 中绕着它走动时 Code func renderer renderer SCNSceneRenderer didAdd node SCNNode for anchor ARAnc
  • 有没有一种简单的方法来枚举 Base 中数组的索引?

    有时人们想要循环遍历数组的索引 例如 假设我想创建一个嘈杂的乘法表 首先 创建一些噪音 julia gt m 0 1 rand 2 3 2 3 Matrix Float64 0 0692654 0 0297861 0 0642931 0 0
  • Android-相对布局中ScrollView中的LinearLayout

    我的布局有点问题 我制作了RelativeLayout 其中放置了两个LinearLayout 1 和2 并在它们之间放置了带有LinearLayout 的ScrollView 接下来 我将 ScrollView 设置为放置在 Linear
  • Int64 创建数字范围

    我需要能够创建顺序长度超过 19 位的数字范围 我尝试使用 Enumerable Range 120000003463014 50000 ToList 这适用于较小的数字 但使用上面的代码时 我收到一条错误消息 指出它对于 int32 数字
  • SQL Server 2008根据机器设置获取DATETIMEOFFSET

    在 SQL Server 2008 R2 上 我有以下 T SQL 代码 SELECT CAST GETDATE AS DATETIMEOFFSET 这给了我如下结果 2011 12 26 10 21 13 7970000 00 00 但结
  • Apache Camel onException

    我想捕获路由中的所有异常 我添加这个 OnException onException Exception class process new MyFunctionFailureHandler stop 然后 我创建 MyFunction F
  • Heroku 与 NodeMailer 的问题

    我在 Heroku 上使用 Nodemailer 时遇到问题 非常感谢您的帮助 我的应用程序的先前版本曾经在 Heroku 上运行没有问题 当我回滚到该版本时 它仍然运行良好 在该应用程序的最新版本中 我没有对访问 Nodemailer 的