Sample code for 30+ languages & platforms
PowerShell

Save Email Attachments to Filesystem

Saves email attachments to a directory.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

$email = New-Object Chilkat.Email

#  Load an email object containing attachments.
#  This .eml can be downloaded from:
#  http://www.example-code.com/testData/HtmlEmail.eml

$success = $email.LoadEml("HtmlEmail.eml")
if ($success -ne $true) {
    $($email.LastErrorText)
    exit
}

#  If OverwriteExisting is turned on, files with the same
#  name are overwritten.  If turned off, new/unique filenames
#  are automatically generated.  The filenames actually saved
#  are accessible via the GetAttachmentFilename method.
$email.OverwriteExisting = $true

#  Save all attachments to the "myAttachments" subdirectory
#  found under the calling process's current working directory.
#  This directory is automatically created if it does not already
#  exist.
$success = $email.SaveAllAttachments("myAttachments")
if ($success -ne $true) {
    $($email.LastErrorText)
    exit
}

#  List the attachment filenames:

for ($i = 0; $i -le $email.NumAttachments - 1; $i++) {
    $($email.GetAttachmentFilename($i))
}