LoginSignup
55
67

More than 3 years have passed since last update.

PowerShellでメール送信

Last updated at Posted at 2014-10-20

はじめに

データベースから取得した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 からメールを送信する

MailMessage.Attachments プロパティ

PSCredential資格情報を作ってみる

Send-MailMessage

55
67
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
67