mailgun 传入邮件事件获取附件 url

Mar*_*ebb 3 node.js mailgun

我有一个节点端点,它接收 json 中的传入电子邮件,并带有来自 mailgun 的任何附件。

附件在一个 json 数组中(xxx.com 用于隐私)

attachments: '[{"url": "https://sw.api.mailgun.net/v3/domains/xxx.com/messages/eyJwIjpmYWxzZSwiayI6ImZhMTU0NDkwLWVmYzgtNDVlNi1hYWMyLTM4M2EwNDY1MjJlNCIsInMiOiI2NmU1NmMzNTIwIiwiYyI6InRhbmtiIn0=/attachments/0", "content-type": "image/png", "name": "ashfordchroming_logo.png", "size": 15667}]
Run Code Online (Sandbox Code Playgroud)

但是如果我在浏览器中输入网址:

https://sw.api.mailgun.net/v3/domains/xxx.com/messages/eyJwIjpmYWxzZSwiayI6ImZhMTU0NDkwLWVmYzgtNDVlNi1hYWMyLTM4M2EwNDY1MjJlNCIsInMiOiI2NmU1Nmz0IhtImZhMTU0NDkwLWVmYzgt

我得到

{
  "message": "Domain not found: xxx.com"
}
Run Code Online (Sandbox Code Playgroud)

我想要以最简单的方式在 HTML 中显示图像附件,我希望 URL 能够正常工作,因为 mailgun 存储了附件。

所以我只是想在 Node.js 的模板中呈现 url。

我是否需要将身份验证/API 密钥凭据附加到 URL 的前面才能执行此操作以进行测试并使其工作?

She*_*Tan 5

如果要访问原始 json,请转到

https://sw.api.mailgun.net/v3/domains/xxx.com/messages/eyJwIjpmYWxzZSwiayI6ImZhMTU0NDkwLWVmYzgtNDVlNi1hYWMyLTM4M2EwNDY1MjJlNCIsInMiOiI2NmU1Nmz0IhtImZhMTU0NDkwLWVmYzgt

使用用户名“api”和密码“your-mailgun-privatekey”。

要以编程方式执行此操作,请使用请求包读取缓冲区。

const rp = require("request-promise");
let file = rp.get({
  uri: "attachement-url",
  headers: {
    "Accept": "message/rfc2822"
  }
}).auth("api", "your private key")
/**Access the buffer here**/
file.on('data', (s => {
  console.log(s)
}))
file.pipe(fs.createWriteStream("./my-image.jpg"))
Run Code Online (Sandbox Code Playgroud)

您可以将文件通过管道传输到 S3 或任何云存储桶。