【发布时间】:2020-02-04 08:48:05
【问题描述】:
当我尝试从 google 函数发送电子邮件时,它会抛出以下错误
{ 错误:getaddrinfo EAI_AGAIN api.sendgrid.com:443 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26) 错误:'EAI_AGAIN',代码:'EAI_AGAIN',系统调用:'getaddrinfo',主机名:'api.sendgrid.com',主机:'api.sendgrid.com',端口:443 }
但是我在本地机器上尝试了完全相同的代码,它工作得很好 这是我的功能
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);
var sendMail = function (templateId, receivers, dynamicData, sender, mailSubject) {
var mailMsg ={
to :receivers[0].email,
from : sender[0].email ,
subject : mailSubject,
templateId : templateId,
dynamic_template_data : dynamicData
}
sgMail.send(mailMsg).then(() => console.log("mail sent"))
.catch(err => console.log(err));
}
提前谢谢你!!!!
【问题讨论】:
-
这似乎与stackoverflow.com/questions/40182121/… 中的问题相同,因此请参阅该讨论。
-
如果您在 Cloud Functions 上获得此功能,您的项目是否有机会参与免费/火花计划?为了能够调用第三方 API(例如 SendGrid),您的项目必须采用付费计划。
-
@FrankvanPuffelen 每当在集合中添加新文档时,当我将 SendGrid 用于电子邮件时,我也会遇到同样的错误。是因为免费计划吗?
-
是的。如前所述:只有在您拥有与您的项目关联的结算帐户后,才能调用第三方 API。
标签: node.js firebase google-cloud-functions sendgrid sendgrid-api-v3