ASP.NET Coreでメールを送信する
あすかです。
現在、自分のホームページのリニューアル作業の一環として怪しいシステムを作っていまして、
その怪しいシステムに運悪くも自分のメールアドレスを登録してしまった善良な市民たちに、怪しいメールを送信する必要が出てきました。
ASP.NET Coreでメールを送りたいんです。
C#でメール送信で検索をかけると、SmtpClient
というものがまっさきに出てきますね。System.Net.Mail
名前空間に含まれるやつ。
これ、ASP.NET Coreには含まれていないんです。
そこで、サードパーティのパッケージが必要になります。
ASP.NET Coreということは、WindowsでもLinuxでも同様に動く必要があるんですよね。
そんな都合のいいライブラリってあるんでしょうか。
ありました。
MailKitといいます。
私の探し方が悪かったのか、「これまで使っていたSmtpClient使うのやめてMailKit使ってね」と、マイクロソフト公式が直々に申し上げていますから仕方ありません。
使わせていただきましょう。
もちろんASP.NET Coreでも動きます。WindowsとLinux(Amazon EC2)で動きました。
こちらの記事からコードとってきて、ちょいちょい変えてみます。
How to Send Emails in ASP.NET Core 1.0 - Steve Gordon's Blog
簡単なコードで、WindowsでもLinuxでもメールがちゃんと送信されました。やったね( ・`ω・´)
今までのSmtpClient
と書き方は微妙に違いますが、慣れている方は簡単に移行できると思います。
Linuxのときはパーミッションに気をつけてくださいね。/home/[user name]
ディレクトリにwrite
パーミッションを与えてください。でないと、dotnet
起動時に例外発生します。このフォルダに、メール関連の何かのログが記録されているようです。