2 votes

PowerShell et Outlook - Incompatibilité

J'ai un problème avec le PowerShelll script suivant :

$mail = $outlook.CreateItem(0) 
$mail.To = "aaa@gmail.com"
$mail.Subject = "PowerShell Test 1"
$mail.Body = "Body..."
$mail.HTMLBody = "This is test!"   
$mail.Attachments.Add("C:\Test.txt")    
$mail.save()

$mail = $outlook.CreateItem(0) 
$mail.To = "aaa@gmail.com"
$mail.Subject = "PowerShell Test 2"
$mail.Body = "Body..."
$mail.HTMLBody = "This is test!"   
$mail.Attachments.Add("C:\Test.txt")    
$mail.save()

Quand Outlook EST DÉMARRÉ, le script fonctionne bien - comme prévu, j'ai deux emails dans le dossier Brouillons.

Quand Outlook N'EST PAS DEMARRÉ, Outlook demande d'abord à l'utilisateur les autorisations mais à la fin je n'ai QUE le DEUXIÈME email dans les brouillons, le PREMIER email est manquant.

Quelqu'un a-t-il rencontré ce problème, des solutions ?

1voto

Sweet_Pete Points 403

J'ai eu le même problème qu'Ocaso où le premier email était envoyé dans la boîte de réception et le second était envoyé dans les brouillons. J'ai résolu ce problème en configurant une session pour outlook :

$outlook = new-object -com outlook.application
$session = $outlook.Session
$session.Logon()

La session définit essentiellement une période pendant laquelle une application, outlook dans ce cas, peut recevoir ou configurer des données. En appelant session.Logon(), nous instançons une session ou une période de temps pendant laquelle outlook peut sauvegarder des données/emails. L'article ci-dessous explique mieux les sessions :

http://msdn.microsoft.com/en-us/library/Windows/desktop/ms714451%28v=vs.85%29.aspx

Merci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X