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> </td>"
texte = texte & " <td> </td>"
texte = texte & " <td><em>" & notes & "</em></td>"
texte = texte & " </tr>"
texte = texte & "<tr>"
texte = texte & " <td> </td>"
texte = texte & " <td> </td>"
texte = texte & " <td><hr></td>"
texte = texte & " </tr>"
NbMessages = NbMessages + 1
End If
Next
texte = texte & " <tr>"
texte = texte & " <td> </td>"
texte = texte & " <td> </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
|