PowerShellでメールを送信する方法 その2

こんにちは
けいぞうです。

前回の続きです。

前回

前回はPowerShellでメールを送信する方法として最もシンプルな方法を記載しました。

が、SMTPサーバーが必要になるため、手軽さが微妙という話でしたね。

ですので、SMTPサーバーはクラウド製品を使ってしまおうというお話が今回です。

この場合、認証が絡んでくるので前回と同じコマンドレットでは送信できないのが残念な点ですが、

まあそれでもシンプルっちゃシンプルな感じでいけます。

実際に私もこの方法を使ってメール送信系のツールを作成しました。

SMTPサーバーとして使っているのはOffice365(Exchange Online)です。

以下サンプルコードです。

$EmailFrom = "送信元メールアドレス"
$EmailTo = "送信先メールアドレス"
$Subject = "件名" 
$Body = "本文" 
$SMTPServer = "smtp.office365.com" 
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("O365アカウント","パスワード"); 
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) 

前回のコマンドレットに比べてステップ数が2行増えただけです。
これでSMTPサーバーを自前で用意しなくてもメールを送ることができます 。

もちろん、Office365のアカウントを作成する必要があります。

今の私の知識だと、Office365のテナントを作成して、
Exchange Onlineが使えるライセンスを用意したうえで
それを割り当てたユーザーのアカウントとパスワードを上記コマンドレットのNetworkCredentialに指定してあげる必要があります。

え?ライセンスって、有料なんじゃないの?

そうです、有料です。。。。確か一番安いので月額440円くらいです。。。

だがしかし、無料試用版があります!!!

無料試用版は延長利用もできて2,3か月くらい使うこともできます。

しかもテナントは何回でも作成し直すことができるので、

実質は、無料でずっと使うことができます。

面倒くさくない人はこれでやってもまあいいかもしれません。