1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# Le mail qui contient une piece jointe xlsx sera déplacé dans le dossier "Livraisons" (penser a faire un changement)
$DossierOutlook = "Livraisons"
# Appel des méthodes pour les automations d'Outlook
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
# Recuperation de l'option "Boite de receptions"
$BoiteDeReception = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.olDefaultFolders]::olFolderInbox)
$DestinationFolder = $BoiteDeReception.Folders.Item($DossierOutlook)
# Récupére tous les mails qui n'ont pas été lu
$ItemMails = $BoiteDeReception.Items | ? {$_.UnRead -eq $true }
# Filtre les mails qui contient une piece jointe portant l'extension xlsx, il est possible de faire le filtre dans le foreach pour le traitement de plusieurs formats de fichiers
$ItemMails = $ItemMails | ? {$_.Attachments.FileName -match "xlsx" }
Foreach($item in $ItemMails.Attachments)
{
# Sauvegarde du fichier dans un dossier local a l'ordinateur
$Item.SaveAsFile( "C:\xlsx\$($item.FileName)")
# impression du fichier
Start-Process -FilePath "C:\xlsx\$($item.FileName)" –Verb Print
# Deplacement du fichier dans le dossier "Livraisons"
$item.Move($DestinationFolder)
}
|
Partager