以前にPowerShellでYahooメールのsmtpサーバーからメールを送信する記事を書きました。
現在のところ、その方法では送信することが出来ない状態になっていましたので送信出来る方法を調べてみました。
現在のところ、その方法では送信することが出来ない状態になっていましたので送信出来る方法を調べてみました。
function Send-EndMail
{
param(
[Parameter(ValueFromPipeline=$true,Mandatory=$false)]
[string]$Text = ""
)
$user = "ユーザー名"
$password = "パスワード"
$from = "Yahooメールのアドレス"
$to = "メールの送信先"
$mail = New-Object System.Web.Mail.MailMessage
$mail.From = $from
$mail.To = $to
$mail.Subject = $Text + "終了の通知。"
$mail.Body = "作業が終了したことをお知らせします。"
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 2
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"] = "smtp.mail.yahoo.co.jp"
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"] = 465
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = $user
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = $password
$mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"] = $true
[System.Web.Mail.SmtpMail]::SmtpServer = "smtp.mail.yahoo.co.jp"
[System.Web.Mail.SmtpMail]::Send($mail)
}
スクリプトを$profile内で定義しておき、時間のかかるバッチ処理などの後に、この関数を呼び出すようにするとバッチ処理の終了がメールで通知されて便利です。
"batch" | Send-EndMail
コメント