使用 mailgun 机器在 sails 上发送电子邮件会导致 'cannot call method' on sails.machines['...'].sendPlaintextEmail({...}

Sending email on sails with mailgun machine results in 'cannot call method' on sails.machines['...'].sendPlaintextEmail({...}

我有一个 sails 项目,我已经连接到 treeline - 创建一个对象后,我想使用 mailgun 机器发送电子邮件但是收到以下错误:

/Users/alexlunnon/Workspace/fclp/fclp/api/controllers/OfferController.js:48
   sails.machines['00ba429e-d255-4f44-8efc-af6f5cfa4942_0.3.1'].sendPlaint
                                                                ^
TypeError: Cannot call method 'sendPlaintextEmail' of undefined
at Object.sails.machines._project_1691_0.0.15.create_offer.setEnvironment.exec.success (/Users/alexlunnon/Workspace/fclp/fclp/api/controllers/OfferController.js:48:86)
at afterwards (/Users/alexlunnon/Workspace/fclp/fclp/node_modules/machine/lib/intercept-exit-callbacks.js:131:21)
at voided [as _onTimeout] (/Users/alexlunnon/Workspace/fclp/fclp/node_modules/machine/lib/intercept-exit-callbacks.js:98:20)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

在控制器中我可以看到 sails.machines['00ba429e-d255-4f44-8efc-af6f5cfa4942_0.3.1'].sendPlaintextEmail({ 在创建对象时被成功调用。我还可以在机器文件夹下看到 00ba429e-d255-4f44-8efc-af6f5cfa4942_0.3.1 已与 treeline 中的 machinepack-mailgun 同步。

尝试隔离问题,我发现从对 sendPlaintextEmail 的调用中删除所有动态内容会导致相同的错误 - sendHTMLEmail 也是如此。我正在使用 angular 到 post 对象到 OfferController.js

有任何调试此问题的提示或建议吗?

最有可能的问题是某些依赖项没有正确安装。最简单的解决方案是完全删除 api/machines 文件夹,然后再次 运行 treeline lift 让系统自动重新安装必要的依赖项。