Je dois faire l'analyse de mon activité au cours de ces 12 derniers mois, à partir de certains mots clés contenus dans mes mails (je dois rechercher dans mes mails l'occurrence de "Projet 1" "Projet 2" "Projet 3" etc...).
Pour cela j'ai exporté le fichier Outlook .pst qui contient tous mes mails, vers un fichier .csv. Cela a fonctionné. Le problème est que lors de l'export .csv, je n'ai pas la possibilité de définir l'export des champs "Date" (date d'envoi et date de réception des mails). Je me retrouve donc avec une liste de mails sous excel sans colonne contenant les dates...pas très utile pour dresser une chronologie d'activité.
J'ai alors essayé d'exporter mes mails vers un .csv via un script PowerShell (via GPT), mais ce script ne fonctionne pas car il ne parvient pas à communiquer avec Outlook. Pourtant j'ai réinitialisez les composants COM...Je mets le script ci-dessous pour info.
Du coup si vous connaissez une autre solution me permettant d'exporter mes mails d'Outlook vers un .csv (ou autre format exploitable) cela m'intéresse volontiers
(en ce jour n'oubliez pas de fêter une bonne fête à vos mamans, sur la terre comme au ciel! )
Version d'Outlook : MS office Pro 2021
Code : Tout sélectionner
# Définir le chemin du fichier de sortie
$outputPath = "C:\Path\To\Your\OutputFile.csv"
# Démarrer Outlook
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")
# Récupérer le dossier de la boîte de réception
$inbox = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
# Vérifier si l'objet récupéré est du bon type
if ($inbox -is [Microsoft.Office.Interop.Outlook.MAPIFolder]) {
Write-Host "Boîte de réception récupérée avec succès."
} else {
Write-Host "Erreur : l'objet récupéré n'est pas du type attendu."
exit
}
# Fonction récursive pour parcourir les sous-dossiers et exporter les e-mails
function Export-Mails {
param (
[Microsoft.Office.Interop.Outlook.MAPIFolder]$folder
)
foreach ($item in $folder.Items) {
if ($item -is [Microsoft.Office.Interop.Outlook.MailItem]) {
$mail = $item
$obj = [PSCustomObject]@{
Subject = $mail.Subject
Sender = $mail.SenderName
To = $mail.To
Cc = $mail.CC
Bcc = $mail.BCC
ReceivedTime = $mail.ReceivedTime
Body = $mail.Body
}
$obj | Export-Csv -Path $outputPath -Append -NoTypeInformation -Encoding UTF8
}
}
foreach ($subFolder in $folder.Folders) {
Export-Mails -folder $subFolder
}
}
# Appeler la fonction pour exporter les e-mails de la boîte de réception et des sous-dossiers
Export-Mails -folder $inbox