![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Bonjour à tous,
Je souhaiterais créer une règle dans Outlook qui me permette ceci : - Automatiser l'envoi d'une réponse à partir d'un email reçu - Pour des emails contenant certains objets uniquement - Au destinataire de l'email reçu et non pas à l'expéditeur Je m'explique : Je reçois sur mon adresse "abc@abc.com" une copie d'email envoyée De : "xyz@xyz.com"A : "uvw@uvw.com"Je souhaiterais automatiser l'envoi d'une réponse de mon adresse "abc@abc.com" à "uvw@uvw.com" Je n'éprouve aucun problème à automatiser l'envoi et à créer ma règle, mais ma difficulté est ici que Outlook envoie sa réponse de "abc@abc.com" à "xyz@xyz.com". Existe-il un script permettant de bypasser "xyz@xyz.com", pour n'envoyer de réponse automatique qu'à "uvw@uvw.com" ? Je débute... D'avance merci ;-) |
|
|
|
|
|
#2 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Tjs pas de réponse ?
Please, je galère encore sur ce code... Ne devrais-je pas utiliser la fonction "Recipient.Address" quelque part à la place de "Sender.address" ? Ou alors "ReplyAll" pour répondre à tous automatiquement et inclure le recipient ? Je vous remercie d'avance ! |
|
|
|
|
|
#3 (permalink) |
![]() |
Salut,
as-tu un début de code ? tu énumère des solutions possibles mais les as-tu essayé ? par sur un début de code et ensuite on pourra te guider Dolphy
__________________
Initiation au VBA d'Outlook Je ne réponds pas aux questions techniques par MP
|
|
|
|
|
|
#4 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Bonjour et merci pour ta réponse,
J'ai trouvé un message déposé par qq ayant un problème similaire, mais il me semble que le script proposé est trop complexe pour ce que je veux faire : ************************ Bonjour, Je souhaiterais configurer une réponse automatique un peu particulière sur un mail. Je reçois une copie de mail (en CCI) adréssé par un ami à une tierce personne. A la réception de ce mail, je souhaiterais envoyer automatiquement un mail à cette tierce personne, mais quand je lance une règle avec une réponse automatique sur la réception de ce mail (avec un filtre sur l'objet par exemple), c'est mon ami qui reçois mon mail. Mon ami envoie donc un mail du type : De : Mon ami A : Tierce personne CCI : moi Je reçois donc le mail avec comme info : De : Mon Ami A : Tierce personne Quand je fait une regle de réponse sur ce mail, c'est mon ami qui reçois le mail J'ai vu qu'il y avais des scripts sur outlook. Est il possible d'en créer un qui récupère l'adresse de la tierce personne dans le mail que je recois pour lui renvoyer la réponse automatique ? Si oui existe t'il déjà et ou ? s'il n'existe pas, y a t'il un tuto pour apprendre a programmer ces script en 10 lecons J'ai déjà fait un peu de programmation, ça me fait pas trop peur, mais si c'est déjà fait ou infaisable, autant pas commencer Merci pour votre aide *********************************** pour executer un script à partir d'une règle de message "executer un script" Le script doit comporter un argument MailItem (ou MeetingItem) et se trouver soit dans thisoutlooksession soit dans un module Code :
Sub RunAScriptRuleRoutine(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ' do stuff with msg, e.g. MsgBox msg.Body Set msg = Nothing Set olNS = Nothing End Sub Ensuite tu dois rechercher dans le body du mail ou son HTMLBODY selon le paramètre BodyFormat, la zone où se trouve l'adresse Email de la tierce personne,il faut trouver le @ et le premier espace avant et celui après pour délimiter l'adresse. quand tu as cette adresse tu peux créer ton mail. Tu auras besoin des fonctions texte suivantes MID, INSTR bon courage -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a nice day Oliv' Je n'ai pas besoin d'aller consulter le corps du mail mais juste son head, en inversant le "SenderEmailAddress" par "RecipientEmailAdress" Par ailleurs, la "Tierce personne" n'est jamais pareille dans mon cas. Dernière modification par Dolphy35 ; 15/04/2008 à 00h09 Motif: Balises Code |
|
|
|
|
|
#5 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Salut,
2 solutions soit tu utilises les actions : répondre, transférer, soit tu crées un nouveau mail. ensuite tu ajoutes les recipient destinataires
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#6 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Bonjour Oliv',
Je ne comprends pas bien ta réponse : Tu parles de créer une nouvelle règle pour transférer à la place de répondre ? Dans ce cas, Outlook me demande d'y inclure les recipient destinataires manuellement. Le problème reste donc le même puisque je ne peux pas automatiser la tâche ??? Ou tu parles d'un script en rule ? Merci d'avance, |
|
|
|
|
|
#7 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Salut,
Toujours avec le script que tu a cité. celui ci permet de faire des choses sur le mail reçu, or c'est pas le mail reçu que tu envois mais soit unz réponse, soit un transfert de ce mail, ce qui inclu dans ces 2 cas la copie du mail et éventuellement des PJ. ou alors tu crées un nouveau mail dans lequel tu mets ton texte de réponse et les destinataires. Pour récupérer les éléments du message d'origine : Code :
sujet= msg.subject expediteur = msg.SenderEmailAddress Code :
For each destinataire in msg.recipients msgbox destinataire next destinataire Code :
Set LeMailTransfere = MSG.Forward LeMailTransfere.Recipients.add "destinataire@fai.fr" LeMailTransfere.Send
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#8 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Presque OK,
Franchement un grand merci pour tout mais je débute et j'ai vraiment pas mal de difficultés avec le code... Est-ce que si j'exécute ce script dans ThisOutlookSession en parallèle avec ma règle de réponse automatique, ça pourrait fonctionner : Code :
Sub RepToRec (MyMail As MailItem) Dim LeMailTransfere As Outlook.MailItem Dim destinataire As msg.Recipients For Each destinataire In msg.Recipients MsgBox destinataire Next destinataire Set LeMailTransfere = msg.Forward LeMailTransfere.Recipients.Add "destinataire@fai.fr" LeMailTransfere.Send End Sub Merci encore, |
|
|
|
|
|
#9 (permalink) | |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Salut,
En fait il faut que tu expliques quelle type de réponse tu veux faire l'équivalent de répondre, de transferéer ou autre chose ? En faisant répondre ton mail va avoir une section Citation:
Code :
Sub RepToRec(MyMail As MailItem) '--------------------------------------------------------------------------------------- ' Procedure : RepToRec ' Author : Oliv' ' Date : 16/04/2008 ' Purpose : script a executer avec une règle pour répondre au destinataires A '--------------------------------------------------------------------------------------- ' Dim LeMailTransfere As Outlook.MailItem Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) Set LaReponse = msg.Reply 'il faut supprimer les destinataires par defaut For I = LaReponse.Recipients.Count To 1 Step -1 LaReponse.Recipients.Remove I Next I 'on Ajoute des destinataire "A" du mail d'origine For Each destinataire In msg.Recipients 'MsgBox destinataire If destinataire.Type = olTo Then LaReponse.Recipients.add destinataire.Address End If Next destinataire 'affiche la réponse à commenter après test LaReponse.Display ' à decommenter pour envoyer ' LaReponse.Send Set msg = Nothing Set olNS = Nothing Set LaReponse = Nothing End Sub Sub test_script() Dim Oitem As Outlook.MailItem Set Oitem = ActiveInspector.CurrentItem RepToRec Oitem End Sub
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
|
#10 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
CA Y EST !!! J'AI REUSSI !!!
Voici la dernière modification apportée afin de pouvoir y inclure mon modèle à envoyer (sur base du code initial de Oliv') : Code :
Sub RepToRec(MyMail As MailItem) '--------------------------------------------------------------------------------------- ' Procedure : RepToRec ' Author : Oliv' ' Date : 16/04/2008 ' Purpose : script a executer avec une règle pour répondre au destinataires A '--------------------------------------------------------------------------------------- ' Dim LaReponse As Outlook.MailItem Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) Set LaReponse = msg.reply 'il faut supprimer les destinataires par defaut For I = LaReponse.Recipients.Count To 1 Step -1 LaReponse.Recipients.Remove I Next I 'on Ajoute des destinataire "A" du mail d'origine For Each destinataire In msg.Recipients 'MsgBox destinataire If destinataire.Type = olTo Then Set LaReponse = Application.CreateItemFromTemplate("C:\download\LaReponse.oft") LaReponse.Recipients.Add destinataire.Address End If Next destinataire 'affiche la réponse à commenter après test LaReponse.Display ' à decommenter pour envoyer LaReponse.Send Set msg = Nothing Set olNS = Nothing Set LaReponse = Nothing End Sub Sub test_script() Dim Oitem As Outlook.MailItem Set Oitem = ActiveInspector.CurrentItem RepToRec Oitem End Sub @+ |
|
|
|
|
|
#11 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
C'est bien mais faut faire un peu de ménage.
Code :
Sub RepToRec(MyMail As MailItem) '--------------------------------------------------------------------------------------- ' Procedure : RepToRec ' Author : Oliv' ' Date : 16/04/2008 ' Purpose : script a executer avec une règle pour répondre au destinataires A '--------------------------------------------------------------------------------------- ' Dim LaReponse As Outlook.MailItem Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ''inutile puisque tu utilises un modele '' Set LaReponse = msg.reply '' 'il faut supprimer les destinataires par defaut '' For I = LaReponse.Recipients.Count To 1 Step -1 '' LaReponse.Recipients.Remove I '' Next I '' c'est mieux de créer ton nouveau mail en dehors de la boucle Set LaReponse = Application.CreateItemFromTemplate ("C:\download\LaReponse.oft") 'on Ajoute des destinataire "A" du mail d'origine For Each destinataire In msg.Recipients 'MsgBox destinataire If destinataire.Type = olTo Then LaReponse.Recipients.Add destinataire.Address End If Next destinataire 'affiche la réponse à commenter après test LaReponse.Display ' à decommenter pour envoyer LaReponse.Send Set msg = Nothing Set olNS = Nothing Set LaReponse = Nothing End Sub Sub test_script() Dim Oitem As Outlook.MailItem Set Oitem = ActiveInspector.CurrentItem RepToRec Oitem End Sub
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#12 (permalink) |
|
Invité de passage
![]() Date d'inscription: avril 2008
Messages: 7
|
Super, tu es décidément un chef...
Je viens de copier ton dernier code (j'ai juste enlevé le "LaReponse.Display" qui ne m'était d'aucune utilité dans mon cas). Mille fois merci et au plaisir de relire l'un de tes nombreux posts ingénieux.
|
|
|
|
![]() |
![]() |
||
Réponse automatique au destinataire d'un email reçu en copie
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|