Bonjour le Forum ,
Voici mon problème (euh j'essaie d'expliquer) :
- J'ai deux boîtes mails personnelles. On ne s'en occupe car elles ne sont pas concernées.
- J'ai deux autres boîtes : boite1@coucou.be et boite2@hello.be
- La boite1@coucou.be ne doit plus être utilisée à partir du 01.01.2020 mais entretemps, elle est toujours activée. La boite2@hello.be ne sera utilisée officiellement qu'à partir du 01.01.2020. Tout va bien. Mais, il semblerait, selon le CTI, qu'il est impossible de faire une déviation de l'une vers l'autre étant donné que ce sont des domaines différents.
- Donc, pour le moment, je fais un traitement (qui devrait encore être épuré) que permet de transférer les mails qui arrivent sur la boite1@coucou.be (soit pendant la nuit soit pendant la journée) vers la boite2@hello.be.
Dim WithEvents m_colInbox As Outlook.Items
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Private Sub Application_Startup()
Dim objNS As Outlook.NameSpace
Dim objNomBoite As Recipient
Dim objDossier As Outlook.MAPIFolder
Dim objSession As Object
Dim olMail As Outlook.MailItem
Set objNS = Application.GetNamespace("MAPI")
Set objNomBoite = objNS.CreateRecipient("boite1@coucou.be")
Set objDossier = Application.Session.GetSharedDefaultFolder(objNomBoite, olFolderInbox)
'Transfert des mails présents dans la boîte à l'ouverture de Outlook
For Each olMail In objDossier.Items
If olMail <> "" Then
Set MailT = olMail.Forward
MailT.To = "boite2@hello.be"
MailT.Display
MailT.Send
olMail.UnRead = False
olMail.Delete
Else
End If
Next
Set m_colInbox = objDossier.Items
Set objNS = Nothing
Set objNomBoite = Nothing
Set objDossier = Nothing
End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub m_colInbox_ItemAdd(ByVal Item As Object)
'Transfert des mails à leur arrivée quand Outlook est ouvert
Dim objMsg As Outlook.MailItem
On Error Resume Next
Set objMsg = Item
Debug.Print "olMail : " & olMail
Debug.Print "objMsg : " & objMsg
Set MonMail = Item
Debug.Print MonMail
Set FwEmail = MonMail.Forward
Debug.Print FwEmail
FwEmail.To = "boite2@hello.be"
FwEmail.Display
FwEmail.Send
MonMail.UnRead = False
MonMail.Delete
Set objMsg = Nothing
End Sub |
Tout va bien pour l'instant. Là où cela se complique, c'est que l'agent qui traite les mails et les transfère vers les bons gestionnaires qui ont une boite mails du style ...@coucou.be se mangent à chaque fois un mail d'accusé de réception étant donné que le CTI a créé cette règle automatique et immuable dès que l'on reçoit un mail de l'extérieur.
Donc, je me demandais s'il était possible d'ajouter une partie de code (qui réagirait sur le domaine et sur une partie du contenu du mail qui est immuable) pour qu'à la réception de ce f.... mail, il soit mis automatiquement à la poubelle. Une bête règle toute simple ne fonctionne pas, je l'ai testé en long et en large. Le problème selon moi, serait de gérer en temps réel la réception des mails sur les deux boites mails. Est-ce possible ? ou est-ce que Outlook sera complètement schizo ? Si vous avez des pistes... je suis preneur.
Ne pas hésiter si vous voulez un complément d'infos car je ne suis pas certain d'avoir été complet.
Partager