[Outlook] Intervenir à l'envoi d'un mail

Intervenir à l'envoi d'un mail [Outlook] - VB/VBA/VBS - Programmation

Marsh Posté le 20-04-2004 à 11:47:40    

Bonjour à tous !
 
Je désire afficher un message dans Outlook 2000 au moment de l'envoi d'un mail, qui permettra de mettre une personne en copie CC.
Voici le code de la Macro :
 

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
rep = MsgBox("Désirez-vous envoyer une copie de ce mail à mlle Durand ?", vbYesNo, Copie)
 
' Si oui
If rep = 6 Then
    Set myRecipient = Item.Recipients.Add("durand@mail.com" )
    myRecipient.Type = olCC
End If
 
End Sub

 
Si l'utilisateur répond "non", tout se passe bien.
S'il répond "oui", le destinataire est bien inséré en CC, mais un message d'erreur m'indique :
"Echec de l'opération du client"
 
Quelqu'un pourrait-il m'aider à compléter ce code de pauvre newbie  :pt1cable:  ?
 
Merci d'avance à tous ! Et longue vie forum !


---------------
Le contexte est plus fort que le concept...
Reply

Marsh Posté le 20-04-2004 à 11:47:40   

Reply

Marsh Posté le 21-04-2004 à 10:50:15    

:-( personne pour me donner un petit coup de main ?
up


---------------
Le contexte est plus fort que le concept...
Reply

Marsh Posté le 21-04-2004 à 11:23:51    

si j'ai bien compris, malgrés le message d'erreur l'action demandée s'effectue correctement, c'est ça ?

Reply

Marsh Posté le 21-04-2004 à 11:37:47    

Bonjour et merci pour ta réponse. ;-)
En fait le destinataire est bien inséré dans la zone CC, mais le mail ne part pas après ce message d'erreur.
J'ai essayé de mettre "Item.Send" après l'insertion du destinataire, mais là il me dit qu'on ne peut pas envoyer un message qui est déjà en cours d'envoi.
Du coup je suis bloqué, je ne sais pas ou intervenir à part sur cette methode.
Un autre indice : si je mets un "Cancel=true" après l'insertion du destinataire, je n'ai aucune erreur;mais évidemment le mail ne part pas lol


---------------
Le contexte est plus fort que le concept...
Reply

Marsh Posté le 21-04-2004 à 11:54:02    

et à la bourrin avec un : On Error Resume Next, est-ce que ça arrange quelque chose ?
 
sinon, tu lance cette action depuis quel outil ?

Reply

Marsh Posté le 22-04-2004 à 11:59:52    

Avec le "on error", meme message d'erreur...
Je lance l'action depuis Outlook, j'utilise la fonction Application_ItemSend de visual basic editor, donc cette action est déclenchée à chaque envoi de mail.
Je me demande juste s'il n'est pas trop  tard, lors de cette methode, pour ajouter le destinataire en Cc, considérant que le message est peut etre déjà en cours d'envoi !
Mais a ce moment là, je ne sais pas comment intervenir entre le clic du bouton "envoyer", et l'envoi effectif du mail...
En tout cas merci de t'interesser à mon cas !


---------------
Le contexte est plus fort que le concept...
Reply

Marsh Posté le 05-07-2009 à 19:11:23    

webwhisky a écrit :

:-( personne pour me donner un petit coup de main ?
up


J'ai trouvé ça sur le net : a priori il suffit d'utiliser en plus recipient.resolve
 
 
Private Sub Application_ItemSend(ByVal Item As Object, _
 
Cancel As Boolean)
 
'By Oliv' 29/06/2007 pour Outlook 2003
 
Dim myRecipient As Outlook.Recipient
 
If Not Item.Class = olMail Then GoTo fin
 
Dim prompt As String
 
' ici renseigner le destinataire
 
cci = "MonDestinataire@sonDomaine.fr"
 
'commentez au choix l'option non voulue
 
'########################Option CCI############################
 
prompt = "Ajouter le cci " & cci & " à " & Item.Subject & "?"
 
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample" ) = vbYes Then
 
Set myRecipient = Item.Recipients.Add(cci)
 
myRecipient.Type = olBCC
 
myRecipient.Resolve
 
If myRecipient.Resolved = False Then
 
MsgBox "L'adresse Email n'est pas correcte !", vbCritical, "Erreur"
 
Cancel = True
End If
 
End If
 
'########################Option CC##############################
 
prompt = "Ajouter le cc " & cci & " à " & Item.Subject & "?"
 
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample" ) = vbYes Then
 
Set myRecipient = Item.Recipients.Add(cci)
 
myRecipient.Type = olCC
 
myRecipient.Resolve
 
If myRecipient.Resolved = False Then
 
MsgBox "L'adresse Email n'est pas correcte !", vbCritical, "Erreur"
 
Cancel = True
End If
 
End If
 
'#######################FIN#####################################
 
fin:
 
End SubOliv'  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed