tuxbleu renie ses origines | Bonjour
Sur mon Outlook, je possède 2 comptes : Un compte nommé "Mail" qui est de type pop3, et un compte nommé "Messagerie interne" qui est un compte Exchange.
Je cherche, en fonction de l'adresse de destination de mon mail, choisir à la place de l'utilisateur quel compte va etre utilisé.
J'ai fais "google est mon ami", j'ai trouvé des brides de codes qui semblent prometteuses, pas d'erreur à l'exécution, je défile pas à pas le code, tout semple se passer correctement (le test pour chosir quel compte de messagerie est correcte) mais le mail est toujours envoyé avec le compte de messagerie pas défaut.
Si quelqu'un a une idée, ca m'aiderait beaucoup et éviterait des tonnes de problèmes (mails qui arrivent pas, etc...)
Code :
- Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
- Dim desti
- For Each desti In Item.Recipients
- If desti.Address Like "*@*" Then //Bon là je met pas tous le test, c'est plus poussé que ca mais ca n'a pas d'interet ici
- Externe = True
- Else
- interne = True
- End If
- Exit For
- Next desti
- If externe = True Then //bon jusque là, RAS, selon le formatage de l'adresse de destination, on passe le bon paramètre.
- go = Set_Account("Mail", Item)
- Else
- go = Set_Account("Messagerie Interne", Item)
- End If
- End Sub
|
Code :
- Function Set_Account(ByVal AccountName As String, M As Outlook.MailItem) As String
- Dim OLI As Outlook.Inspector
- Dim strAccountBtnName As String
- Dim intLoc As Integer
- Const ID_ACCOUNTS = 31224
- Dim CBs As Office.CommandBars
- Dim CBP As Office.CommandBarPopup
- Dim MC As Office.CommandBarControl
- Set OLI = M.GetInspector
- If Not OLI Is Nothing Then
- Set CBs = OLI.CommandBars
- Set CBP = CBs.FindControl(, ID_ACCOUNTS)
- CBP.Reset
- If Not CBP Is Nothing Then
- For Each MC In CBP.Controls //Là ca parcours tous les comptes de messagerie existant, donc Mail et Messagerie interne, et je le vois faire au pas à pas
- intLoc = InStr(MC.Caption, " " )
- If intLoc > 0 Then
- strAccountBtnName = Mid(MC.Caption, intLoc + 1)
- Else
- strAccountBtnName = MC.Caption
- End If
- If strAccountBtnName = AccountName Then //Quand le compte recherché est trouvé, on envoi le mail. On rentre bien ici au bon moment.
- MC.Execute
- Set_Account = AccountName
- GoTo Exit_Function
- End If
- Next
- End If
- End If
- Set_Account = ""
- Exit_Function: Set MC = Nothing
- Set CBP = Nothing
- Set CBs = Nothing
- Set OLI = Nothing
- End Function
|
j'ai juste l'impression que ca sert à rien, je dis d'envoyer le mail, mais ai-je bien forcé l'utilisation du bon compte ? Concrètement, tout ce code ne change rien, si je en le mettais pas tout se passerait de la même façon, le compte ne change jamais.
Une idée? ---------------
Mon topic de vente - Mon feed-back
|