Created
July 4, 2018 03:59
-
-
Save SteeveGit/3d74901320e95b9366ec5bda179f04c9 to your computer and use it in GitHub Desktop.
email vocal notification
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Created by Steeve Antoine | |
# | |
# Before anything, START Outlook (keep the app open) and select the "receipt" folder | |
# | |
# Ok, that's lot of useless comments but I know me... | |
# After some months I will forget the purpose of some (obvious) code. | |
# PRINCIPE | |
# Les titres (subject) des emails du jour sont lus à haute voix | |
# ... avec une voix féminine en français mais évidement on peut la changer dans la fonction <tell> | |
# Le processus rentre alors dans une boucle d'attente et lit les nouveaux messages. | |
# Testé avec Outlook sous Win 10 pro le 28/06/2018 | |
# (version non vérifiée ^^ mais le 28/06/2018 avec Windows à jour, tout fonctionnait) | |
# Version de PowerShell = 5.1 | |
### Fonction syntétiseur vocal (Tell)### | |
# La version console gratuite de Balabolka doit être placée dans le répertoite d'exécution du script. | |
# Le programme s'appelle balcon.exe est trouvable via un google search "balabolka console download". | |
# Application console : Télécharger (584 Ko) | |
# L'application console diffère de l'application de bureau en ce qu'elle ne contient pas d'interface | |
# utilisateur graphique et fonctionne uniquement en ligne de commande ou paramétrée par un fichier | |
# de configuration. | |
# | |
# | |
function Tell($msg) { | |
.\balcon.exe -p 10 -t $msg -n "Microsoft Hortense Desktop" | |
} | |
Cls | |
# Trucs chiants à faire obligatoirement pour accéder à ses mails. | |
# La simplicité fonctionnelle, Ils en ont jamais entendu parler chez 'Crosoft. | |
# Mais le comlexité structurelle, ça, ils connaissent. | |
if ($Namespace -eq $null){ | |
Add-Type -Assembly "Microsoft.Office.Interop.Outlook" | |
$Outlook = New-Object -ComObject Outlook.Application | |
$Namespace = $Outlook.GetNameSpace("MAPI") | |
} | |
$Today= (Get-date).Date #get the current date minus the time. | |
Write-Host "Et c'est parti le $Today" | |
#For the first launch recites all emails from the current day, Easier to test the script. | |
while($true) { | |
# The "new" subfolder is a container for new emails I needed. | |
# In Outlouk, create a new rule to duplicate entering emails inside the subfolder "new". | |
# Feel free to use the standard "receipt" folder instead, | |
# provided that it's not already bloated (full of emails). | |
# Don't use accents in strings used as Folder names, The console may not like it... | |
# In my config, the 2 following code lines have the same effect, so they are equal. | |
# $New = $Namespace.Folders(1).Folders("Boîte de réception").Folders("new").Items | | |
# $New = $Namespace.Folders(1).Folders(1).Folders("new").Items | | |
# ExempLe: pour vérifier qu'on est bien dans "boite de réception" et si outlouk | |
# est configuré en français, faire la vérification suivante: | |
# >$Namespace.Folders(1).Folders("Boîte de réception") | select Name | |
# Si "boite de réception" est le premier dossier dans Outlouk, le code suivant fait la même chose: | |
# >$Namespace.Folders(1).Folders(1) | select Name | |
#Est-il bien nécessaire de rafraîchir la variable $mails comme ça ? Potentiellemnt lent. | |
$mails = $Namespace.Folders(1).Folders(1).Items | | |
Where-Object {$_.SentOn -gt $Today} | |
foreach ($mail in $mails) { | |
$Today = $mail.SentOn | |
Write-Host $mail.SentOn $mail.subject | |
Tell ($mail.SenderName + " " + $mail.subject) | |
#$mail.Delete() | |
#Mauvaise idée, détruire une copie d'un email détruit toutes les copies dans tous les dossiers. | |
} | |
start-sleep -seconds 60 #Attendre 1 minute | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment