昨日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)の使い方を調べるのに地味に時間がかかってしまった…。