##はじめに
データベースから取得したCSVデータをメールで送信する案件が発生した。
CSVを暗号化zip圧縮にする必要があるが取り敢えずは、
zipファイルをメールに添付して送信するスクリプトを作ってみた。
##環境
PowerShell v2.0以降
.Net Framework 2.0以降
##解説
.NET Framework2.0以降にある
SmtpClientとMailMessage、Attachmentオブジェクトを呼び出して
作成している。
僕が紹介した当時は、Portの変更等ができなかったので。
今はSend-MailMessageで事足ります。
メール送信
$From="送信元メールアドレス"
$Subject="納品書"
$body="納品内容を送信致します。"
# このファイルの場所を取得
$FilePath=Split-Path ( & { $myInvocation.ScriptName } ) -parent
$File=@(Get-ChildItem $FilePath'\添付ファイル.zip')
$To="宛先メールアドレス"
# 送信メールサーバーの設定
$SMTPServer="メールサーバーアドレス"
$Port="ポート番号"
$User="送信ユーザー名"
$Password="送信パスワード"
$SMTPClient=New-Object Net.Mail.SmtpClient($SMTPServer,$Port)
# SSL暗号化通信しない $false
$SMTPClient.EnableSsl=$false
$SMTPClient.Credentials=New-Object Net.NetworkCredential($User,$Password)
# メールメッセージの作成
$MailMassage=New-Object Net.Mail.MailMessage($From,$To,$Subject,$body)
# ファイルから添付ファイルを作成
$Attachment=New-Object Net.Mail.Attachment($File)
# メールメッセージに添付
$MailMassage.Attachments.Add($Attachment)
# メールメッセージを送信
$SMTPClient.Send($MailMassage)
##参考サイト
Windows PowerShell を使用して GMail や Office 365 からメールを送信する