PowerShell を利用して Office 365 からメールを送信する

2020/04/18

以前 Ruby を使って Gmail 経由でメール送信 というブログを書きましたが、今度は Windows で定期実行される処理(PowerShell)からレポートメールを送る必要があったのでメモ。

環境

  • Windows 10 Pro
  • PowerShell 5.1

サンプルコード

自分のメールアドレス(差出人)が [email protected] 、宛先のメールアドレスが [email protected] としてサンプルコードを書いてみる。ここでは [email protected] が Office 365 のアカウントとする。

# Office 365 の認証情報
$o365User = '[email protected]';
$o365Pass = 'Office365 のパスワード';
# 差出人
$from    = '[email protected]';
# 宛先
$to      = '[email protected]';
# メールのタイトルと本文
$subject = 'メールのタイトル';
$body    = 'メールの本文';

# MailMessage インスタンス作成
$msg = New-Object System.Net.Mail.MailMessage($from, $to, $subject, $body);

# Office 365 の SMTP サーバーを設定して SmtpClient インスタンスを作成
$SMTPClient = New-Object Net.Mail.SmtpClient("smtp.office365.com", 587) ;

# SSL を True に設定
$SMTPClient.EnableSsl = $true;

# Office 365 への認証
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($o365User, $o365Pass);

# メール送信
$SMTPClient.send($msg);

参考