Password Expiry Email Notification by PowerShell 中文通知信亂碼之解法

緣由,因為使用者當AD + EXCHANGE 有快要過期的密碼需要發郵件通知使用者。


藉由這一個問題,我利用PowerShell 找到了一個程式 Password Expiry Email Notification 可以運用 。下載使用後發現通知信的中文會出現 '???' 的亂碼。

藉由Google大神搜尋  Power Shell 中文亂碼,得到結論是加入 $OutputEncoding = New-Object -typename System.Text.UTF8Encoding 或是 $Encoding ([System.Text.Encoding]::UTF8) ,結果不能解決問題。

最後,曙光一線 找到這一個連結 中間有介紹到他改寫的程式能發出中文通知信,我詳讀一下他的語法,原來優 要於 PwoerShell 的程式 Send-Mailmessge 中加入 -Encoding ([System.Text.Encoding]::UTF8)   才可以啦!我真是竹本口木子。

也就是 Password Expiry Email Notification 範例程式要改成如下即可。(紅色斜體字)

Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding ([System.Text.Encoding]::UTF8)


留言

Unknown寫道…
請問一下你有沒有修正好的版本,因為我改了都無法使用,還是你可以幫我標註要改那些地方嗎?
Nick寫道…
Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding ([System.Text.Encoding]::UTF8)

我就改這裡而已。
Nick寫道…
# 這是註解,請拿掉後加上自己的郵件主機發送地址。
而且影上中也說明很清楚。你可以自己只校看一下用法說明。
Unknown寫道…
Hi Nick:

感謝你的說明,但是我不是寫程式出身的,需要你提點一下,你是否可以貼給我修改的範例,我看了2天的Youtube還是改不太出來,感謝你的幫忙,還是你方便mail 寄給我你修改完成可執行的檔案給我參考

我的Email:c91611133@gmail.com

這個網誌中的熱門文章

資訊部門KPI範例