社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Office365参考書】Powershellからメールを送信する方法とは?

f:id:it-bibouroku:20200306163650p:plain

メールを送信する場合、Outlook on the web や Outlook クライアントなどのメールクライアントを利用して送信すると思いますが、 

Powershell のコマンドレットを利用してメールを送信することができます。 

  

SMTP クライアント送信を利用した方法であり、smtp.office365.com の 587 ポートに接続して送信します。 

  

そのため、SMTP クライアント送信でエラーなどにより送信できない場合に、クライアント起因か切り分ける方法として、 

Powershell を利用することもできます。 

  

以下に手順をご紹介いたしますので、お試しください。 

  

 

<構文> 

$EmailFrom = “Fromアドレス”  

$EmailTo = “Toアドレス”  

$Subject = "件名"  

$Body = "本文"  

$SMTPServer = "smtp.office365.com"  

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)  

$SMTPClient.EnableSsl = $true  

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“ログインID”, "ログインパスワード”);  

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) 

} 

  

[追加パラメーター] 

$Cc = "<CCアドレス>" 

$Bcc = "<bccアドレス>" 

  

  

<実行例> 

$EmailFrom = "Admin@contoso.com" 

$EmailTo = "User@contoso.com" 

$Subject = "test"  

$Body = "testtest"  

$SMTPClient = New-Object Net.Mail.SmtpClient("smtp.office365.com", 587)  

$SMTPClient.EnableSsl = $true  

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("Admin@contoso.com", "12345678");  

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) 

 

また、以下のコマンドレットでも可能であることを確認してます。

 

<構文> 

Send-MailMessage -SmtpServer "smtp.office365.com" -From "<差出人アドレス>" -To "<宛先アドレス>" -Subject "<件名>" -UseSsl -Port 587 -Credential (Get-Credential) 

  

<実行例> 

Send-MailMessage -SmtpServer "smtp.office365.com" -From "A@contoso.com" -To "B@contoso.com" -Subject "testA" -UseSsl -Port 587 -Credential (Get-Credential) 

※上記のコマンドレット実行後に認証画面が表示されますので、Fromとして送信するアドレスのログインIDとパスワードを入力してください。