この github articleに従って、 OAuth2 を使用して GMail に対して認証し、SMTP および IMAP (MailKit のクライアント) を使用してプログラムで gmail メッセージを送信できます。リンクは著者 (jstedfast) によって親切に提供されました。この方法の問題点は、ブラウザのポップアップが開き、少なくとも時々ユーザーの認証が必要になることです。これは、メソッドがサービス アカウントと秘密/公開キーではなく「ユーザー シークレット」を使用するためかもしれませんが、確かなことはわかりません。
プロセスを手動でプッシュするユーザーがいないサーバー タイプのアプリケーションから電子メールを送信する必要があります。これまでのところ、アプリは標準の SMTP 認証を使用していますが、これには GMail/GSuite アカウントで「安全性の低い」設定を有効にする必要があり、顧客はそれを望んでいません。
サービス アカウントと公開/秘密キーを使用して、OAuth2 で電子メール クライアントを認証する方法を示す非常に古い投稿(これも jstedfast によるもの) があります。私はその記事に忠実に従いました(p12の代わりにjsonパッケージの証明書を使用し、GSuiteメールではなくGMailを使用したことを除いて)が、結果は否定的です。つまり、client.Authenticate(accessToken) を実行しようとすると、応答は {"status":"400", "schemes":"Bearer", "scope": "https://mail.google.com という例外になります。 /"}
私は GSuite にアクセスでき、必要に応じて使用しても構わないと思いますが、明確な手順と機能する例が見つかりません。秘密鍵/公開鍵の暗号化を介して OAuth2 で認証し、ユーザーの操作を必要としない C# の例を指摘できる人はいますか?