.NET CoreのC#からSendGridを使ってメールを送信する方法

SendGridサポートチームの菊田(@kikutaro_)です。先日、C#を触る機会があったので、.NET CoreをインストールしてVisual Studio Code(以降VSCodeと表記)でコードを書きました。.NET Frameworkの知識で止まっていた私にとっては、.NETがクロスプラットフォームで動くことやVisual Studioを使わなくてもC#を書けることが新鮮でした。

SendGridのC#ライブラリは.NET Coreでも動くのか気になって調べたところ、しっかり対応していました。そこで、今回のブログでは、.NET Coreの環境でSendGridのC#ライブラリを使う方法を紹介します。

事前準備

はじめに以下の準備をします。

・ SendGridのFreeプランのアカウント
.NET Core 1.0以上のインストール
Visual Studio Codeのインストール 
 ※次の2つの拡張機能を入れます
   ・Japanese Language Pack for Visual Studio Code
   ・C# for Visual Studio Code

今回の内容は以下の環境・バージョンで動作確認を行いました。

・ Windows 10 Pro 1809
・ .NET Core 3.1
・ Visual Studio Code 1.45.1
   ・Japanese Language Pack for Visual Studio Code 1.45.1
   ・C# for Visual Studio Code 1.22.0

メール送信までの手順

1.作業フォルダの作成

「SendGridSample」という名前の作業フォルダを作成します(※)。場所はどこでも構いません。Visual Studio Codeを起動したら、メニューの「ファイル」->「フォルダーを開く」で作成したフォルダを開きます。

VSCodeはコマンド操作にも対応しているため、画面操作の代わりにコマンドラインで実行することもできます。

mkdir SendGridSample
code SendGridSample

2.プロジェクトの作成

続いてプロジェクトの雛形を作成します。メニューの「ターミナル」->「新しいターミナル」を選んで以下のコマンドを実行してください。

dotnet new console

メインとなるコード「Program.cs」を含んだプロジェクトが作成されます。

「Program.cs」を含んだプロジェクト

3.プログラムの実行

プロジェクトが作成できたら以下のコマンドでプログラムを実行してみましょう。「Hello World!」とターミナルに表示されたら環境準備OKです。

dotnet run

4.SendGridライブラリの追加

プログラムの準備ができたので、ここからSendGridを使っていきます。まずは以下のコマンドでSendGridのC#ライブラリを追加してください。

dotnet add package SendGrid

成功するとプロジェクトファイル(SendGridSample.csproj)に以下の情報が記載されます。

<ItemGroup>
    <PackageReference Include="SendGrid" Version="9.15.1" />
</ItemGroup>

5.APIキーの発行と設定

一旦プログラムを離れて、SendGridのダッシュボードからAPIキーを発行します。こちらのブログの「1. APIキーの作成」を参考にAPIキーを取得してください。

取得したAPIキーは環境変数に設定します。下図はWindowsの環境変数に変数名「SENDGRID_API_KEY」を設定した画面です。

新しいシステム変数

6.ソースコードの編集

Program.csにメール送信のコードを書きます。実際に書くときは宛先(To)や送信元(From)を自分のメールアドレスにすることを忘れないようにしてください。

using System;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;

namespace SendGridSample
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
            var client = new SendGridClient(apiKey);
            var from = new EmailAddress("from@example.com", "fromの名前");
            var subject = "SendGridを使ったメール送信";
            var to = new EmailAddress("to@example.com", "toの名前");
            var plainTextContent = "テキストの内容です。";
            var htmlContent = "<strong>HTMLの内容です。</strong>";
            var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
            var response = await client.SendEmailAsync(msg).ConfigureAwait(false);
            Console.WriteLine(response.StatusCode.ToString());
        }
    }
}

7.メール送信の実行

作成したコードを実行しましょう。コマンドラインの場合は以下で実行します。

dotnet run

メニューの「実行」->「デバッグの開始」または「デバッグなしで実行」でも構いません。「Accepted」と表示されたら成功です。宛先にメールが届いているか確認しましょう。

SendGridを使ったメール送信

今回はWindowsの.NET Core環境でSendGridのC#ライブラリを試してみました。.NET CoreはLinuxやMacにも対応しているのでぜひ他の環境でもお試しください。

メールを成功の原動力に

開発者にもマーケターにも信頼されているメールサービスを利用して、
時間の節約、スケーラビリティ、メール配信に関する専門知識を手に入れましょう。