2017-05-09 111 views
1

我有一个节点端点接收JSON传入电子邮件,完成从mailgun任何附件。mailgun传入邮件事件获取附件的URL

的附件是一个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}] 

但是,如果我请在浏览器的网址:

https://sw.api.mailgun.net/v3/domains/xxx.com/messages/eyJwIjpmYWxzZSwiayI6ImZhMTU0NDkwLWVmYzgtNDVlNi1hYWMyLTM4M2EwNDY1MjJlNCIsInMiOiI2NmU1NmMzNTIwIiwiYyI6InRhbmtiIn0=/attachments/0

我得到

{ 
    "message": "Domain not found: xxx.com" 
} 

我想要最简单的方式在HTML中显示图像附件,我希望这个URL能够运行,因为mailgun存储附件。

所以我只是试图呈现来自节点的模板中的网址。

我是否需要认证/ API密钥证书附加到URL的前面做这个测试,使工作?

回答

1

如果您要访问的原始JSON,去

https://sw.api.mailgun.net/v3/domains/xxx.com/messages/eyJwIjpmYWxzZSwiayI6ImZhMTU0NDkwLWVmYzgtNDVlNi1hYWMyLTM4M2EwNDY1MjJlNCIsInMiOiI2NmU1NmMzNTIwIiwiYyI6InRhbmtiIn0=/attachments/0

使用用户名 'API' 和密码 '您-mailgun-专用密钥'。

为此编程,使用请求包来读取缓冲器。

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"))

可以通过管道将文件S3或云桶。