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. Windows 10

    PowerShellでMicrosoft Edgeを操作する

    前回の記事でWebDriverを使ってMicrosoft Edgeを操…

  2. Office関連

    Officeアプリケーションのバージョン情報ダイアログから情報を取得するVBScript

    自分の手間を減らすためのスクリプトシリーズ、今回はWordやExcel…

  3. Power Automate for desktop

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

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

  4. Office関連

    PowerShellからNetOfficeを使ってWordやPowerPointを操作する方法

    前回の記事関連で、WordやPowerPointもドンとこいで…

  5. PowerShell

    winmail.datから添付ファイルを取り出すPowerShellコード

    Outlook以外のメールクライアントを使用しているのであれば、一度は…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP