电子邮件无法使用JavaScript / TypeScript通过SendGrid和POST发送

时间:2017-12-21 01:48:35

标签: javascript typescript post sendgrid

我正在尝试使用SendGrid的Web API V3发送电子邮件。我能够使用Postman发送测试电子邮件,但似乎Postman没有办法将代码转换为纯JavaScript / TypeScript。

我的TypeScript是:

  emailinvite(){
    var payload = {
      "personalizations": [
        {
          "to": [
            {
              "email": "myemail@service.com"
            }
          ],
          "subject": "Hello, World!"
        }
      ],
      "from": {
        "email": "from_address@example.com"
      },
      "content": [
        {
          "type": "text/plain",
          "value": "Hello, World!"
        }
      ]
    };
    var myHeaders = new Headers({
      "Content-Type": "application/json",
      "Authorization": "Bearer API_KEY_HERE",
    });
    var data = new FormData();
    data.append( "json", JSON.stringify( payload ) );
    fetch("https://api.sendgrid.com/v3/mail/send",
    {
        method: "POST",
        headers: myHeaders,
        body: data
    })
    .then(function(res){ return res.json(); })
    .then(function(data){ console.log( JSON.stringify( data ) ) })
  }

我缺少什么让这个功能正常运行?

1 个答案:

答案 0 :(得分:0)

在这部分:

var data = new FormData();
data.append( "json", JSON.stringify( payload ) );

FormData API here的文档说您正在设置一个json->有效负载的键值对,这可能不是您想要做的...您可能只是做:

fetch("https://api.sendgrid.com/v3/mail/send",
{
    method: "POST",
    headers: myHeaders,
    body: JSON.stringify(payload)
})