先日、PowerShellからMailKitを使ってメールを送信する方法について記事を書きました。
前回はテキストのみのメールだったので、今回はファイルを添付したメールを送信してみたいと思います。
※ MailKitの導入方法は「[PowerShell]MailKitを使ってメールを送信する方法」をご参照ください。
#DLL読み込み [void][System.Reflection.Assembly]::LoadFile("C:\System\MailKit\MailKit.dll") [void][System.Reflection.Assembly]::LoadFile("C:\System\MailKit\MimeKit.dll") #必要に応じて変更 $userID = "xxxx@xxxxxxxxxx.onmicrosoft.com" $userPassword = "(パスワード)" $mailServer = "smtp.office365.com" $mailPort = 587 $mailFromAddress = "xxxx@xxxxxxxxxx.onmicrosoft.com" $mailFromName = "差出人" $mailToAddress = "(宛先アドレス)" $mailToName = "宛先" $mailSubject = "【件名】添付ファイルの送信テスト" $mailBodyText = "ファイルを添付します。" $attachmentFilePath = "C:\Test\テスト用PDF.pdf" #メッセージ設定 $msg = New-Object MimeKit.MimeMessage $mailFrom = New-Object MimeKit.MailboxAddress($mailFromName, $mailFromAddress) $msg.From.Add($mailFrom) $mailTo = New-Object MimeKit.MailboxAddress($mailToName, $mailToAddress) $msg.To.Add($mailTo) $msg.Subject = $mailSubject $textPart = New-Object MimeKit.TextPart([MimeKit.Text.TextFormat]::Plain) $textPart.Text = $mailBodyText #添付ファイル設定 $attachment = New-Object MimeKit.MimePart $content = New-Object MimeKit.MimeContent([System.IO.File]::OpenRead($attachmentFilePath), [MimeKit.ContentEncoding]::Default) $attachment.Content = $content $contentDisposition = New-Object MimeKit.ContentDisposition([MimeKit.ContentDisposition]::Attachment) $attachment.ContentDisposition = $contentDisposition $attachment.ContentTransferEncoding = [MimeKit.ContentEncoding]::Base64 $attachment.FileName = [System.IO.Path]::GetFileName($attachmentFilePath) $multiPart = New-Object MimeKit.Multipart("mixed") $multiPart.Add($textPart) $multiPart.Add($attachment) $msg.Body = $multiPart #メール送信 $client = New-Object MailKit.Net.Smtp.SmtpClient $client.Connect($mailServer, $mailPort, $false) $client.Authenticate($userID, $userPassword) $client.Send($msg) $client.Disconnect($true)
前回と同じく、Office 365のアカウントからメールを送信するコードです。
上記コードを実行すると、指定した宛先にPDFファイル付きのメールが送られます。
コードは公式のドキュメントを参考にしました。
テキスト部分と添付ファイル部分を合わせたマルチパート形式のメッセージとしている点が、前回と大きく異なります。
この記事へのコメントはありません。