node.js - 如何从 firebase 存储发送附件并使用 node.js 中的 mailgun 服务将其发送到电子邮件

标签 node.js firebase google-cloud-storage firebase-storage mailgun

是否可以从 firebase 存储附加文件? 我尝试了以下代码,但它不起作用

var mailgun = require("mailgun-js");
var api_key = 'key-acf9f881e32c85b3c0dad34358507a95';
var DOMAIN = 'sandbox76c6f74ddab14862816390c16f37a272.mailgun.org';
var mailgun = require('mailgun-js')({apiKey: api_key, domain: DOMAIN});
var path = require("path");

var filepath = path.join(`gs://i-m-here-c01f6.appspot.com/Groups/${leaderId}`, 'group_image.jpg');


var data = {
    from: 'Excited User <postmaster@sandbox76c6f74ddab14862816390c16f37a272.mailgun.org>',
    to: 'rayteamstudio@gmail.com',
    subject: 'Complex',
    text: 'Group Creation Request',
    html: `<p>A user named: ${fromName} wants to create a group.<br />
            User ID: ${leaderId}<br />
            Group Name: ${groupName}<br />
            Group Description: ${groupDescription}<br /><br />
            To Accept the request click here:<br />
            https://us-central1-i-m-here-c01f6.cloudfunctions.net/acceptOrDenyGroupCreation?leaderID=${leaderId}&requestStatus=approved <br /><br />
            To Deny the request click here:<br />
            https://us-central1-i-m-here-c01f6.cloudfunctions.net/acceptOrDenyGroupCreation?leaderID=${leaderId}&requestStatus=denied /></p>`,
    attachment: filepath
};

mailgun.messages().send(data, function (error, body) {
    if(error)
        console.log('email err: ',error);
});

请帮忙

最佳答案

您无法像使用 HTTP 网址一样使用 gs://bucket-name/path-to-file 网址从 Cloud Storage 下载文件。相反,您必须执行以下操作之一:

  1. 使用 Cloud Storage SDK 将文件下载到本地,然后将其附加到您的电子邮件
  2. 或者,使用 Cloud Storage SDK 生成“Signed URL ”,这将为您提供该文件的 HTTPS 网址,可用于下载该文件。

关于node.js - 如何从 firebase 存储发送附件并使用 node.js 中的 mailgun 服务将其发送到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50197728/

相关文章:

javascript - 如何在 kaltura 中上传字幕文件?

angular - 我如何检查 Angularfire 用户是否存在并具有身份验证标识符

android - 如何从 firebase 检索 int

python - 我无法使用 Python 将名称中包含空格的文件上传到 Google Cloud Storage。我究竟做错了什么?

authorization - 无法获得服务帐户授权以使用 Python 客户端库 API 处理 GCS 脚本

javascript - 导入对象实例的模块化方式

node.js - 覆盖模型错误: Cannot overwrite `actors` model once compiled

google-cloud-storage - 获取 Google Storage 存储桶大小的最快方法?

node.js - 无法使用node-windows启动Node JS服务

node.js - 我在服务或部署 Firebase 托管功能时遇到问题