PowerShell

[PowerShell]MailKitを使ってメールにファイルを添付する方法

先日、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ファイル付きのメールが送られます。

コードは公式のドキュメントを参考にしました。

テキスト部分と添付ファイル部分を合わせたマルチパート形式のメッセージとしている点が、前回と大きく異なります。

関連記事

[Office]シンプルリボンのアンケートへの回答でAmazonギフト券が当たるチャンス前のページ

2018年11月の人気記事次のページ

関連記事

  1. PowerShell

    [PowerShell]メール送信用関数

    本記事で使用しているSmtpClientは2018年現在非推奨となって…

  2. Power Automate for desktop

    Power Automate Desktopを更新するPowerShellスクリプト

    公式ブログを見れば分かる通り、Power Automate Deskt…

  3. Office関連

    Excelを使わずにCSVからExcelファイルに変換するPowerShellコード

    CSVファイルからExcelファイルに変換する処理を自動化したい、Ex…

  4. PowerShell

    UI Automation PowerShell Extensionsを試しに使ってみました。

    「d.sunnyone.org: WindowsアプリのUI自動操作を…

  5. Office関連

    [PowerShell]Word文書の透かし文字を変更するスクリプト

    MSDNフォーラムに「PowerShellを使って、Word文書の透か…

  6. Office関連

    PowerShellからClosedXMLを使ってExcelファイルを作成する方法

    以前C#からClosedXMLを使ってExcelファイルを操作する方法…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP