Google Cloud Platform发布/订阅-未将邮件传递给订阅者

时间:2019-06-25 00:35:03

标签: node.js email google-cloud-platform publish-subscribe google-cloud-pubsub

我正在根据Google(https://developers.google.com/gmail/api/guides/push)提供的指南为Gmail设置推送通知。我想让我的节点应用程序向.watch()注册一个客户端,然后按照文档中的描述在指定的端点接收电子邮件。

我创建了pub / sub主题,将gmail添加为发布者,添加了订阅者,并在我的节点应用程序中调用watch()。 watch()返回相应的{historyId:xxxx,expiration:yyyy}对象,根据Google的文档,它表示调用已成功。

用于在后端接收电子邮件通知的处理程序:

export const receiveGmailEmail: RequestHandler = async (req, res) => {
  log('Received update from google!');
  log(JSON.stringify(req.body, null, 2));
  return res.status(200);
}

注册:

  const watchRes = await gmailClient.watch();
  log('====> Watch Response <=====');
  log(JSON.stringify(watchRes, null, 2));

显示正确注册的服务器日志: ====>观看响应<===== {   “ historyId”:“ 6560”,   “到期”:“ 1562025255689” }

我从未在节点应用程序的接收端点接收消息。根据服务器日志,发布消息时,我从未真正收到任何请求。问题似乎是我的邮件未送达。我已通过Stackdriver监视器确认当我向电子邮件地址发送电子邮件时pub / sub主题正在发布消息,但是如果我在Stackdriver中查看订阅的详细信息,则表明未发送消息的数量不断增加。

是否有任何关于为什么订阅中的邮件未送达的消息?

1 个答案:

答案 0 :(得分:0)

事实证明,这不是Google发布/订阅问题。 Amazon Cloudfront默认情况下会阻止POST请求,因此我必须编辑缓存行为以启用POST请求。 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods