Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

C#のHttpClientを使ってSendGridのWeb APIを呼び出す

昨日Hello Worldを書いたプログラムを使って、SendGridのWeb APIでメールを送信しました。

SendGridにはC#向けのライブラリがあって.NET Coreにも対応していますが、今回は標準のHttpClientを使いました。

using System;
using System.Net.Http;
using System.Text;

namespace HelloWorld
{
    class Program
    {
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            var client = new HttpClient();

            //APIキーを使った認証
            client.DefaultRequestHeaders.Authorization = 
                new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer","SG.xxx");

            //メール送信リクエスト
            var requestbody = @"{
                ""personalizations"": [
                    {
                    ""to"": [{""email"": ""kikuta+to@example.com""}]
                    }
                ],
                ""from"": {""email"": ""kikuta+from@example.com""},
                ""subject"": ""メールだよ"",
                ""content"": [
                    {
                    ""type"": ""text/plain"",
                    ""value"": ""メール本文だよ""
                    },
                    {
                    ""type"": ""text/html"",
                    ""value"": ""メール本文だよ""
                    }
                ]
            }";

            //SendGrid Web API v3の呼び出し
            var response = await client.PostAsync("https://api.sendgrid.com/v3/mail/send", new StringContent(requestbody, new UTF8Encoding(), "application/json"));
            Console.WriteLine("Mail sent. StatusCode = " + response.StatusCode);
        }
    }
}

AuthorizationヘッダやRaw String(duplicated double quote)の使い方を調べるのに地味に時間がかかってしまった…。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村