Windows Server 2012 R2 からPowerShellを使って手っ取り早くメールを送信する方法

Windows Server 2012 R2からPowerShellの “Send-MailMessage” コマンドでメールを送信することができます。

[簡単な例]

PS C:\Users\Administrator> Send-MailMessage -To “Suzuki@example.com” -From “yamada@example.com” -Subject “Testmail” -SmtpServer “smtp.example.com” -Credential “admin001”

-To :宛先アドレスを指定
-From:差出人アドレス(ヘッダFrom)を指定
-Subject:メールの件名を指定
-SmtpServer:メール送信サーバのFQDNまたはIPアドレスを指定
-Credential:メール送信サーバに接続するときのユーザ名を指定

上記の例では、 山田さん<yamada@example.com>が鈴木さん<Suzuki@example.com> 宛に、Testmailとう件名で、メールを出しています。また送信用のメールサーバに、smtp.example.com を指定します。ここはIPアドレスでも問題ありません。そして、メールサーバに接続するためのユーザとして admin001を指定しています。

上記のコマンドを実行すると以下のようなプロンプトが表示されるので、メール送信サーバのユーザのパスワードを入力するとメールが送信されます。

[その他のオプション]
-Cc:CCのメールアドレスを指定
-Bcc:BCCのメールアドレスを指定
-Body:メールの本文を記載
-Encoding:件名と本文で利用されるエンコードを指定。指定しない場合、受信されたメッセージが文字化けすることがありますのでちゃんと指定しましょう。とりあえず、UTF8を指定しておくと良いでしょう。
-Attachments : 添付ファイルを指定
-UseSsl:デフォルトだとSSL通信が使われません。
-Port:ポート番号を指定できます。デフォルトだと宛先ポートとして25番ポートが利用されます。25番ポートは平文でメールを送信するときに使われるデフォルトのポートです。 TLS の場合は548、SSLの場合は465が利用されることが多いので、メール送信できない場合はポートが正しいか確認しましょう。ポートが正しいのに送信できばい場合はファイアウオールが開放されているか確認してみてください。

[最後に]
ここで紹介したオプションをすべて使うと以下のようになります。

PS C:\Users\Administrator> Send-MailMessage -To “Suzuki@example.com” -From “yamada@example.com” -Cc “Saito@example.com” -Bcc “Sawada@example.com” -Subject “明日の予定” -Body “明日はお休みします” -Encoding “UTF8” -Attachments “C:\Users\Administrator\Desktop\test.txt” -SmtpServer “smtp.example.com” -Credential “admin001” -UseSsl -Port “587”

コメント