昨日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();
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"": ""メール本文だよ""
}
]
}";
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)の使い方を調べるのに地味に時間がかかってしまった…。