【C#】NLogでMail通知
NLogでメール通知ってどうやるんだろうなぁ。 やっぱSMTPサーバ立てないとダメかなぁと思っていたら、Gmailでできるやん! というのがあったので、やってみた。
参考
まんまだけど、下記公式Wikiを参考。
NLog Config
まずNLogコンフィグファイルを下記の通り設定。 今回はErrorをメール送信のルールとして設定しています。
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="gmail" xsi:type="Mail" smtpServer="smtp.gmail.com" smtpPort="587" smtpAuthentication="Basic" smtpUserName="mail@gmail.com" <!-- メール送信に使うアカウント --> smtpPassword="pass" <!-- メール送信に使うのパスワード --> enableSsl="true" from="mail@gmail.com" <!-- お好きなアドレス --> to="mail@gmail.com" <!-- お好きなアドレス --> cc="test@testsugimomoto.com" <!-- お好きなアドレス セミコロンで区切ることが可能 --> /> </targets> <rules> <logger name="*" minlevel="Error" writeTo="gmail" /> </rules> </nlog>
C#を載せるまでもないかもだけど。
using System; using NLog; public class MyClass { private static Logger logger = LogManager.GetCurrentClassLogger(); static void Main(string[] args) { Console.WriteLine("Start Log Test"); logger.Error("Gmail Error Mail Log Test"); } }
これで送信されます。 ただし、Gmailのセキュリティ設定に引っかかることがあると思うので、 アプリケーションの許可をする必要あり。
こんな感じのメールが届きます。