Автоматическое сохранение писем в виде файлов MSG? - PullRequest
0 голосов
/ 24 сентября 2018

Надеюсь, кто-нибудь сможет помочь.Я пытаюсь автоматически сохранять электронные письма как .msg файлы.Эти электронные письма являются запросами, которые отправляются публикой через онлайн-портал.В электронных письмах будет создан индексный файл, относящийся к нему, а затем загружен в систему EDM.Мне нужно сохранить письмо в его оригинальном формате, так как оно содержит личную / конфиденциальную информацию, которая не может быть подделана.Я делал нечто подобное раньше, но сохранял вложения, а не реальное письмо.

У меня было несколько попыток, и нижеприведенный скрипт - самый близкий, который я получил, но это поиск по «моему» адресу электронной почты по умолчанию, и янужно, чтобы прочитать хоть другой, возможно, несколько разных.Кто-нибудь знает, может ли это быть изменено для параметризации адреса электронной почты для поиска, хотя?

$DestinationPath = "c:\Support\files\"
$EmailAddress = "Application.Emails@donny.gov.uk"

#Removes invalid Characters for file names from a string input and outputs the clean string
Function Remove-InvalidFileNameChars 
{
    param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [String]$Name
    )
    return [RegEx]::Replace($Name, "[{0}]" -f ([RegEx]::Escape([String] [System.IO.Path]::GetInvalidFileNameChars())), '-')
}

#Add Interop Assembly
Add-type -AssemblyName "Microsoft.Office.Interop.Outlook" | Out-Null

#Type declaration for Outlook Enumerations
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
$olSaveType = "Microsoft.Office.Interop.Outlook.OlSaveAsType" -as [type]
$olClass = "Microsoft.Office.Interop.Outlook.OlObjectClass" -as [type]

#Add Outlook Com Object, MAPI namespace, and set folder to the Inbox
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNameSpace("MAPI")

#
$folder = $namespace.getDefaultFolder($olFolders::olFolderDrafts)
#$folder = $namespace.getDefaultFolder($olFolders::olFolderDrafts)

#Iterate through each object in the chosen folder
foreach ($email in $folder.Items) 
{

    #Get email's subject and date
    [string]$subject = $email.Subject
    [string]$sentOn = $email.SentOn

    #Strip subject and date of illegal characters, add .msg extension, and combine
    $fileName = Remove-InvalidFileNameChars -Name ($sentOn + "-" + $subject + ".msg")

    #Combine destination path with stripped file name
    $dest = $DestinationPath + $fileName

     $email.SaveAs($dest, $olSaveType::olMSG)   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...