1

sendgrid アカウントをセットアップし、cUrl を使用してテストしました。

curl -v -X POST https://api.sendgrid.com/api/mail.send.json
      -d "to=me@xxxxxxxxxx.com"      
      -d "from=noreply@xxxxxxxxxx.com"
      -d "subject=Sending with SendGrid is Fun"
      -d "html=and easy to do anywhere, even with CURL"
      -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxx"

作品:

{"message":"success"}

MarkLogic 8今、私は次のように使用して同じことをしようとしていますxdmp.httpPost:

// query

var payload = xdmp.quote({ 
                            "to": "me@xxxxxxxxx.com",
                            "from" : "noreply@xxxxxxxxxx.com",
                            "subject" : "dingus",
                            "text" : "inhoud man"
                              }); 
xdmp.httpPost("https://api.sendgrid.com/api/mail.send.json",
         {
           "data" : payload,
           "headers" : {
           "Authorization" : "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
             "content-type" : "application/json"
           }
         });

失敗します:

{
"code": 400, 
"message": "Bad Request", 
"headers": {
"server": "nginx", 
"date": "Mon, 14 Mar 2016 09:55:23 GMT", 
"content-type": "application/json", 
"content-length": "68", 
"connection": "keep-alive", 
"x-frame-options": "DENY"
}
}
JSON Document 
{
"errors": [
"Empty from email address (required)"
], 
"message": "error"
}

一部の検索では、sendgrid api が正確な実装でかなりうるさいことが示されていますが、ここで何か他のものが不足している可能性がありますか?

ヒューゴ

4

1 に答える 1

1

わかりました、私は間違ったツリーを吠えていました。

Sendgrid にはフォーム入力が必要です (JSON ではありません)

したがって、これは機能します:

var message = fn.concat('to=',msg_to,'&toname=',msg_toname,'&subject=Your activation&text=',msg_text,'&from=activation@xxxxx.com');

xdmp.httpPost("https://api.sendgrid.com/api/mail.send.json",
     {
       "data" : message,
       "headers" : {
         "Authorization" : "Bearer xxxxxxxxxxxxxxx",
         "content-type" : "application/x-www-form-urlencoded"
       }
     })
于 2016-03-15T09:03:33.053 に答える