Question Outlook verifier si email envoyé
- CASPAR
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 3 ans 11 mois - il y a 3 ans 11 mois #30201
par CASPAR
Outlook verifier si email envoyé a été créé par CASPAR
Bonjour aux pros de Powershell !
j'aurais besoin de déterminer si un message a bien été envoyé à un destinataire dans Outlook 2016.
Il me semble que la bonne méthode serait de vérifier si le dit message est bien dans le dossier éléments envoyés...
(Je ne vois pas d'autres moyens d'y parvenir ...!?) Voilà les informations que j'ai trouvées pour l'instant mais je coince sur la manière de lister les éléments du dossier éléments envoyés ...
Peut être pourriez vous m'aider en me donnant des conseils ou des exemples de code ?
En vous remerciant pour votre aide.
Jean-Marc
j'aurais besoin de déterminer si un message a bien été envoyé à un destinataire dans Outlook 2016.
Il me semble que la bonne méthode serait de vérifier si le dit message est bien dans le dossier éléments envoyés...
(Je ne vois pas d'autres moyens d'y parvenir ...!?) Voilà les informations que j'ai trouvées pour l'instant mais je coince sur la manière de lister les éléments du dossier éléments envoyés ...
Peut être pourriez vous m'aider en me donnant des conseils ou des exemples de code ?
En vous remerciant pour votre aide.
Jean-Marc
$olFolderInbox = 6
$ol = new-object -comobject "Outlook.Application"
$namespace = $ol.getnamespace("mapi")
#$mapi.Accounts
#$mapi.AddressLists
#$mapi.Folders
#$mapi.Application
#$mapi.AutoDiscoverConnectionMode
#$mapi.AutoDiscoverXml
#$mapi.AutoDiscoverConnectionMode
#$mapi.Parent
#$mapi.folders
#$mapi.Categories
#$mapi.folders
#$mapi.Parent
#$mapi.ExchangeConnectionMode
#$mapi.ExchangeMailboxServerName
#$mapi.ExchangeMailboxServerVersion
#$mapi.GetDefaultFolder(olFolderSentMail)
#olFolderSentMail
#olFolderDeletedItems
#olFolderOutbox
#olFolderSentMail
#olFolderInbox
#olFolderCalendar
#olFolderContacts
#olFolderJournal
#olFolderNotes
#olFolderTasks
#olFolderDrafts
#olPublicFoldersAllPublicFolders
#olFolderConflicts
#olFolderSyncIssues
#olFolderLocalFailures
#olFolderServerFailures
#olFolderJunk
#olFolderRssFeeds
#olFolderToDo
#olFolderManagedEmail
#olFolderSuggestedContacts
$inbox = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
$emails = $inbox.Items | Where-Object {$_.Subject -like $subjectComparisonExpression}
#The $emails variable will contain a list of just those emails that were sent from SSRS. Now, for each of those, we can apply some processing. For instance:
# Process the reports by recipient
ForEach ($email in $emails)
{
# Look at all the attachments in a single email
ForEach ($attach in $email.Attachments)
{
# Not the most robust way to do it, but extract only the first pdf.. there shouldn't be more than one anyway
if ($attach.filename.contains("pdf"))
{
# Set the customer filename and paths and save off their report
# Save the main file
# Prepare outgoing emails (see following article section)
} } }
$template = get-childitem $emailTemplatePath -Filter "$emailTemplatePattern$customer.oft"
if ((Test-Path $template.FullName) -eq $true) # Make sure there's a template to use
{
# Create the email from a template
$emailToCustomer = $outlook.CreateItemFromTemplate($template.FullName.ToString())
# Expand the contact groups
# Start with the To line
$toListOriginal = $emailToCustomer.To
$toListNew = $null
$contacts = $namespace.GetDefaultFolder($olFolderContacts).Items # All the contacts in outlook
foreach ($to in $toListOriginal) # Enumerate the list of To's
{
$toContacts = $contacts.Item($to)
for ($i = 1; $i -le $toContacts.MemberCount; $i++)
{
$toContact = $toContacts.GetMember($i)
[array]$toListNew = $toListNew + $toContact
}
}
# Expand the CC line
$ccListOriginal = $emailToCustomer.CC
$ccListNew = $null
$contacts = $namespace.GetDefaultFolder($olFolderContacts).Items # All the contacts in outlook
foreach ($cc in $ccListOriginal) # Enumerate the list of CC's
{
$ccContacts = $contacts.Item($cc)
for ($i = 1; $i -le $ccContacts.MemberCount; $i++)
{
$ccContact = $ccContacts.GetMember($i)
[array]$ccListNew = $ccListNew + $ccContact
}
}
# Convert to string
if ([string]::IsNullOrEmpty($toListNew) -eq $false)
{
$toListFinal = $null
foreach ($to in $toListNew) { $toListFinal = $toListFinal + $to.Address + ";" }
$toListFinal = $toListFinal.Substring(0, $toListFinal.Length - 1) # Trim final ;
$emailToCustomer.To = $toListFinal
}
if ([string]::IsNullOrEmpty($ccListNew) -eq $false)
{
$ccListFinal = $null
foreach ($cc in $ccListNew) { $ccListFinal = $ccListFinal + $cc.Address + ";" }
$ccListFinal = $ccListFinal.Substring(0, $ccListFinal.Length - 1) # Trim final ;
$emailToCustomer.CC = $ccListFinal
}
# Customize the rest of the message as needed
$emailToCustomer.Attachments.Add($fileFullPath) | Out-Null
$emailToCustomer.HTMLBody = $emailToCustomer.HTMLBody.Replace("[Month]", $priorMonth)
$emailToCustomer.HTMLBody = $emailToCustomer.HTMLBody.Replace("[Year]", $priorYear)
$emailToCustomer.Save()
}
Dernière édition: il y a 3 ans 11 mois par Arnaud Petitjean. Raison: Mise en forme du code
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 3 ans 11 mois #30204
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Outlook verifier si email envoyé
Bonjour Caspar / Loxito (je ne sais pas trop)
Pour moi la meilleure méthode serait de regarder dans les logs du serveur Exchange... Mais je ne sais pas si tu es l'administrateur Exchange de ta société ?
Pourrais-tu nous dire quel est le réel objectif derrière ton besoin ? Cela nous permettrait de peut-être t'aiguiller vers une autre solution ?
En effet, la manipulation de l'objet COM Outlook n'a pas l'air des plus évidentes.
Arnaud
Pour moi la meilleure méthode serait de regarder dans les logs du serveur Exchange... Mais je ne sais pas si tu es l'administrateur Exchange de ta société ?
Pourrais-tu nous dire quel est le réel objectif derrière ton besoin ? Cela nous permettrait de peut-être t'aiguiller vers une autre solution ?
En effet, la manipulation de l'objet COM Outlook n'a pas l'air des plus évidentes.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.098 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Outlook verifier si email envoyé