在 Dialogflow 中使用 NodeMailer
Use NodeMailer in Dialogflow
我想为我在 Dialogflow 中制作的程序中的操作发送一封电子邮件。
我想使用 NodeMailer,但是当我部署我的项目时,出现以下错误消息:
The deployment of your Cloud Function failed: Function load error:
Code in file index.js can't be loaded. Did you list all required
modules in the package.json dependencies? Detailed stack trace: Error:
Cannot find module 'nodemailer'
是否可以在 DialogFlow 中使用 NodeMailer?
谢谢
听起来您正在使用 Dialogflow 中的 built-in Fulfillment Editor。
如果是这样,您在使用 NodeMailer 时遇到了两个问题
- 您需要将其包含在您的 package.json 文件中
- 默认情况下,您的代码将 运行 在网络访问受限的 Firebase 云函数中。
两者都是可以修复的。
但是请记住,您不需要 使用 Dialogflow 编辑器。欢迎您在任何可公开访问的 HTTPS 服务器上 运行 履行。
正在将 NodeMailer 添加到您的 package.json
在 Fulfillment 页面的 Inline Editor 部分,您将单击标有 package.json 的选项卡。您会在其中看到一些 JSON,包括标题为 "dependencies" 的部分。您需要向该部分添加行以指示需要哪些其他 npm 模块 - 在您的情况下,"nodemailer" 包。
您的新 "dependencies" 部分可能如下所示:
"dependencies": {
"actions-on-google": "^1.5.x",
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.5.7",
"nodemailer": "^4.4.2",
"apiai": "^4.0.3"
}
对此进行测试以确保其部署正确。但是一旦部署,您可能 运行 会遇到另一个问题。
网络访问受限
对于 nodemailer 的某些配置,它似乎可能想要连接到某处的邮件服务器。 Firebase Cloud Functions 的基本级别限制您只能连接到 Google 网络服务。如果您连接到 GMail - 您可能没问题。但如果没有,则需要升级。
您可以转到 Firebase Console 并选择您用于 Dialogflow 的同一项目,然后升级到 Blaze 计划。虽然这需要您输入信用卡,并且需要支付使用费,但仍然有足够的免费套餐来进行测试和实验。
我想为我在 Dialogflow 中制作的程序中的操作发送一封电子邮件。
我想使用 NodeMailer,但是当我部署我的项目时,出现以下错误消息:
The deployment of your Cloud Function failed: Function load error: Code in file index.js can't be loaded. Did you list all required modules in the package.json dependencies? Detailed stack trace: Error: Cannot find module 'nodemailer'
是否可以在 DialogFlow 中使用 NodeMailer?
谢谢
听起来您正在使用 Dialogflow 中的 built-in Fulfillment Editor。
如果是这样,您在使用 NodeMailer 时遇到了两个问题
- 您需要将其包含在您的 package.json 文件中
- 默认情况下,您的代码将 运行 在网络访问受限的 Firebase 云函数中。
两者都是可以修复的。
但是请记住,您不需要 使用 Dialogflow 编辑器。欢迎您在任何可公开访问的 HTTPS 服务器上 运行 履行。
正在将 NodeMailer 添加到您的 package.json
在 Fulfillment 页面的 Inline Editor 部分,您将单击标有 package.json 的选项卡。您会在其中看到一些 JSON,包括标题为 "dependencies" 的部分。您需要向该部分添加行以指示需要哪些其他 npm 模块 - 在您的情况下,"nodemailer" 包。
您的新 "dependencies" 部分可能如下所示:
"dependencies": {
"actions-on-google": "^1.5.x",
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.5.7",
"nodemailer": "^4.4.2",
"apiai": "^4.0.3"
}
对此进行测试以确保其部署正确。但是一旦部署,您可能 运行 会遇到另一个问题。
网络访问受限
对于 nodemailer 的某些配置,它似乎可能想要连接到某处的邮件服务器。 Firebase Cloud Functions 的基本级别限制您只能连接到 Google 网络服务。如果您连接到 GMail - 您可能没问题。但如果没有,则需要升级。
您可以转到 Firebase Console 并选择您用于 Dialogflow 的同一项目,然后升级到 Blaze 计划。虽然这需要您输入信用卡,并且需要支付使用费,但仍然有足够的免费套餐来进行测试和实验。