PowerShellを使って手っ取り早くメールを送信する方法

スポンサーリンク

PowerShellの Send-MailMessage コマンドでメールを送信することができます。
※参考:「PowerShell」の開き方

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”

以上。

PowerShell に関しては下記の本をお勧めしておきます。プログラミング初心者向けに丁寧に解説されています。2015年に出版された本ですが、PowerShell の基本的なコマンドはかわらないので何の問題もありません。

コメント