Délégation Centre-Auvergne-Limousin

- Home - News - Conseils - SécuritéMise à jour  -  Liens  -  Accès  -

Délégation Centre-Auvergne-Limousin

Un "mini groupeWare" avec Outlook

Article : xavier.laure@cnrs-orleans.fr

l'idée:

un agenda est tenu à jour (par une secrétaire par exemple...) et le ou les personnes concernées reçoivent chaque soir un mail contenant l'agenda du lendemain.

les problèmes techniques:

  • envoyer tous les jours ce mail de façon automatique
  • envoyer ce mail même si l'Outlook qui gère l'agenda est fermé ou occupé
  • envoyer ce mail avec la session verrouille
  • ne pas être bloqué par les messages d'avertissement d'OUTLOOK du genre:

La solution retenue:

la solution retenue est donc un script en WSH exécuté depuis le shell de Windows 2000. L'avantage de cette solution est que l'on est indépendant de l'état d'Outlook (il peut être fermé) et que c'est plus facile à synchroniser avec une tâche planifiée. De plus comme il n'utilise pas la méthode .CreateItem(olMailItem) de l'objet CreateObject("Outlook.Application") il n'y a plus le message de sécurité d'Outlook. La technique utilisé est basée sur un objet du serveur SMTP (cela suppose donc d'installer le serveur SMTP sur la machine - voir plus bas-) avec l'objet Set objEmail = CreateObject("CDO.Message").

Mise en oeuvre:

1 ) mettre en route le relais SMTP dans outils d'administration / Services Internet IIS /

démarrer le serveur virtuel SMTP et le configurer pour son domaine (simple) attention aux règles des firewalls locaux.

2) placer le code suivant dans un fichier .vbs

3) pour l'exécuter avec la ligne de commande suivante:

cscript moscript.vbs

ou directement suivant vos options d'environnement.

ligne de commande que vous pouvez placer dans une tâche planifiée de Windows.

le code Source:

(faire attention au destinataire et à ne copier que des lignes entières)

Dim texte
Set ObjApp = WScript.CreateObject("Outlook.Application")
Set ObjNameSpace = ObjApp.GetNamespace("MAPI")
Set ObjFolder = ObjNameSpace.GetDefaultFolder(9)
Set ObjElement = ObjFolder.Items
'jour = ObjElement.AllDayEvent
NbMessages = 0
demain = DateAdd("d", 1, Now())
texte = texte & "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">"
texte = texte & "<html>"
texte = texte & "<head>"
texte = texte & "<title>agenda auto</title>"
texte = texte & "<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"">"
texte = texte & "<meta name=""Author"" content=""Xavier LAURE"">"
texte = texte & "</head>"
texte = texte & "<body>"
texte = texte & "<p><font color=""#FF0000"" size=""+1""><strong> Agenda du " & demain
texte = texte & " </strong></font></p>"

For Each Element In ObjElement
duree = Element.Duration
Debut = Element.Start
heure = TimeValue(Debut)
lieu = Element.Location
sujet = Element.Subject
notes = Element.Body
delta = DateDiff("d", DateAdd("d", 1, Now()), Debut)
If delta = 0 Then

texte = texte & "<table width=""90%"" border=""0"">"
texte = texte & " <tr>"
texte = texte & " <td width=""10%"" bgcolor=""#FFFF00""><strong><font color=""#FF0000"">" & debut & "</font></strong></td>"
texte = texte & " <td width=""13%"" bgcolor=""#FFFF00""><strong><font color=""#006600"">" & duree & " min</font></strong></td>"
texte = texte & " <td width=""77%""><strong><em>"+ sujet+ " - lieu -> " & lieu & "</em></strong></td>"
texte = texte & " </tr>"
texte = texte & " <tr>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td><em>" & notes & "</em></td>"
texte = texte & " </tr>"
texte = texte & "<tr>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td><hr></td>"
texte = texte & " </tr>"


NbMessages = NbMessages + 1
End If
Next
texte = texte & " <tr>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td>&nbsp;</td>"
texte = texte & " <td>pour faire des commentaires contactez : <a href=""mailto:titi@wanadoo.fr"">mailto:titi@wanadoo.fr</a></td>"
texte = texte & " </tr>"
texte = texte & "</table>"
texte = texte & "<p><strong><font color=""#FF0000""></font></strong> </p>"
texte = texte & "</body>"
texte = texte & "</html>"


If NbMessages >= 1 Then
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "titi@wanadoo.fr"
'CHANGER ICI LE DESTINATAIRE
objEmail.To = "toto@wanadoo.fr"

objEmail.Subject = "mon agenda pour le" & demain
'pour envoyer au format HTML
objEmail.HTMLbody = texte
'pour envoyer au format texte
'objEmail.Textbody = texte
objEmail.Send
End if

Page Up Updated 29 septembre, 2004 Hervé Chaudret
C.N.R.S.

 -   Home   -  News   -   Conseils   -  Sécurité   -  Mise à jour   -   Liens   -  Accès   -

C.N.R.S.