Как отправить прикрепленный файл из хранилища Firebase и отправить его по электронной почте с помощью сервисов mailgun в node.js - PullRequest
0 голосов
/ 06 мая 2018

Можно ли прикрепить файл из хранилища 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);
});

помогите пожалуйста

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете получить его в виде буфера и отправить так:

var request = require('request');
var file = request("https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");

var data = {
  from: 'Excited User <me@samples.mailgun.org>',
  to: 'serobnic@mail.ru',
  subject: 'Hello',
  text: 'Testing some Mailgun awesomeness!',
  attachment: file
};

mailgun.messages().send(data, function (error, body) {
  console.log(body);
});

от здесь

0 голосов
/ 06 мая 2018

Нельзя использовать URL-адрес gs://bucket-name/path-to-file для загрузки файла из облачного хранилища так же, как это был URL-адрес HTTP. Вместо этого вам придется выполнить одно из следующих действий:

  1. Используйте Cloud Storage SDK для локальной загрузки файла, а затем прикрепите его к своей электронной почте
  2. Или используйте Cloud Storage SDK, чтобы сгенерировать « Подписанный URL », который даст вам HTTPS-URL к файлу, который можно использовать для его загрузки.
...