Azure Automation で日本語の件名なメール

Azure Automationだと件名を2重エンコードしないと文字化けしますね。
ということで、メール送信で良くありそうな設定のサンプルをペタッと。

function EncodeSubject($s) {
	$enc = [Text.Encoding]::GetEncoding("csISO2022JP")
	$s64 = [Convert]::ToBase64String($enc.GetBytes($s), [Base64FormattingOptions]::None)
	return [String]::Format("=?{0}?B?{1}?=", $enc.HeaderName, $s64)  
}

$subject = EncodeSubject(EncodeSubject("件名"))
$body = "本文"

$user = "USER1" 
$pass = "PASSWORD"

$str = ConvertTo-SecureString $pass -AsPlainText -Force 
$psc = New-Object System.Management.Automation.PsCredential($user, $str) 

Send-MailMessage -To "test@example.com" -From "test@example.com" -SmtpServer "smtp.example.com" -Subject $subject -Body $body -UseSsl -Credential $psc -Port 587 -Encoding UTF8

Comments are closed.

Post Navigation