【发布时间】:2021-05-27 00:02:56
【问题描述】:
我在节点应用程序中生成附件,并希望使用 Mailgun 发送它们。我无权访问文件系统(Netlify 函数)。
有没有简单的方法可以做到这一点?
洞口图片
这是一个 Jamstack(Gatsby/React、Netlify、Mailgun)网络应用。客户配置并请求报价。浏览器生成并发布提供 和 图像到 Netlify 函数(获取 api)。该功能发送带有 PDF 报价和附加图像的报价邮件。
我测试的代码(编辑:02/25)
const path = require('path');
const fs = require('fs');
const mailgun = require('mailgun-js')
const FormData = require('form-data');
const { Readable } = require('stream');
const API_KEY = 'SECRET';
const DOMAIN = 'brasilius.de';
const mg = mailgun({apiKey: API_KEY, domain: DOMAIN, host: "api.eu.mailgun.net"});
const stream = fs.createReadStream('test.txt'); // This works
/* {
id: '<20210225115125.1.BF14CC322F8E0DAC@brasilius.de>',
message: 'Queued. Thank you.'
} */
/*
const stream = Readable.from(["Send this text as attachment."]) // Won't work
{ message: "'from' parameter is missing" }
*/
const data = {
from: 'Excited User <me@brasilius.de>',
to: 'test@user.de',
subject: 'Hello',
text: 'Testing some Mailgun awesomeness!',
attachment: stream
};
mg.messages().send(data, (error, body) => {
console.log(body);
});
【问题讨论】:
-
如果您使用类似 nodemailer 的 mailgun 接口,您可以将附件作为来自其他来源的流来引用。
-
谢谢@Joe。你认为(甚至知道)这是唯一的方法吗?我在我的问题中附加了一些代码。
标签: node.js gatsby mailgun netlify netlify-function