Powershell – Send-MailMessage

Facebooktwittermail

Powershellを使用してメール送信を行う方法

Sending mail with PowerShell
http://www.philerb.com/2011/11/sending-mail-with-powershell/

PowerShell version 2からはSend-MailMessage cmdletが用意されています

文字コードはデフォルトでus-asciiになります


このままで日本語メールを送信すると当然文字化けになります

ヘルプを確認すると-Encodingというパラメータが用意されていました

-Encoding <Encoding>
本文と件名に使用されるエンコードを指定します。有効な値は、ASCII、UTF8、UTF7、UTF32、Unicode、BigEndianUnicode、Default、および OEM です。ASCII が既定値です。

ISO-2022-JPが無いのでUTF-8を使用します

あれ? エラーで送信できません。他のエンコードも試したのですがすべてエラーになります


Send-MailMessage : パラメーター ‘Encoding’ をバインドできません。”UTF8″ の値を “System.String” 型から “System.Text.Encoding” 型に変換できません

調べたらありました。同じように悩む人がいるのにちょっと嬉しかった(^^
Send-MailMessage cmdlet not allowing me to set -encoding
http://social.technet.microsoft.com/Forums/windowsserver/en-US/373eb9b2-33b8-40a2-9b47-07c20b0d1b30/sendmailmessage-cmdlet-not-allowing-me-to-set-encoding

[System.Text.Encoding]::を使えとあるので試して見ます

UTF8で送信されて取り敢えず読めるようになりました

このSend-MailMessage cmdletですがsmtp portの変更ができません。標準のPort25の場合はいいのですが、ポートが変更になっていると使えないのがちょっと残念です

Leave a Reply