2016-09-14 1 views
1

J'ai de nombreuses boîtes aux lettres dans mes perspectives et j'ai mis en place le code suivant pour traiter les mails entrants sur une de mes boîtes mail non-par défaut ([email protected]).VBA Répondre aux e-mails d'une boîte aux lettres non-par défaut

Je veux que le code traite tous les messages arrivant dans cette boîte, exécute une action sur le contenu, puis réponds à tout ce courrier.

Le problème est que ReplyAll inclut uniquement la boîte aux lettres en tant que destinataire ([email protected]) et non l'expéditeur. Le résultat est que l'expéditeur n'obtient pas de réponse mais que la boîte continue à envoyer et recevoir elle-même dans une boucle. s'il y a plus d'une personne cc'd dans l'original, ils reçoivent une copie du courrier mais pas l'expéditeur lui-même.

Lors de l'utilisation de ReplyAll, comment puis-je obtenir que la boîte aux lettres identifie correctement l'expéditeur en tant que destinataire au lieu de la boîte aux lettres elle-même? Toutes les idées ont été appréciées! merci à l'avance :)

Option Explicit 
Private WithEvents Items As Outlook.Items 

Private Sub Application_Startup() 
    Dim olNs As Outlook.NameSpace 
    Dim Inbox As Outlook.MAPIFolder 
    Dim olRecip As Recipient 

    Set olNs = Application.GetNamespace("MAPI") 
    Set olRecip = olNs.CreateRecipient("[email protected]") '// Owner's Name or email address 
    Set Inbox = olNs.GetSharedDefaultFolder(olRecip, olFolderInbox) 
    Set Items = Inbox.Items 
End Sub 

Private Sub Items_ItemAdd(ByVal Item As Object) 
    If TypeOf Item Is Outlook.MailItem Then 
     Debug.Print Item.Subject 
     Dim myReply As Outlook.MailItem 

     Set myReply = Item.ReplyAll 
     myReply.htmlbody = "Replied At: "& Now() 
     myReply.SentOnBehalfOfName = "[email protected]" 
     myReply.Send 

    End If 
End Sub 
+0

savoir si vous encore avoir problème – 0m3r

+0

Merci Om3r, j'ai suivi le conseil ci-dessous où j'ai enlevé la boîte elle-même si elle était un destinataire (boucle sans fin autre) et a ajouté le item.SendEmailAddress si c'était exclu. Cela s'est avéré être une solution réalisable. Je ne pourrais pas trouver une solution plus élégante et je ne sais pas pourquoi ce comportement se produit ... essayant toujours d'affiner .. Merci pour votre aide, particulièrement sur l'auditeur de boîte aux lettres non-défaut :) – Freelancer

Répondre

1

Pour assurer l'expéditeur est inclus dans MyReply, vous pouvez ajouter à la Item.SenderEmailAddress myReply.To.

Vous pouvez quitter si Item.SenderEmailAddress est "[email protected]".

+0

Merci, je ne sais pas pourquoi la boîte s'ajoute elle-même quand j'utilise les options de réponse mais j'ai mis en application ceci et maintenant elle répond à tous les destinataires excluant lui-même :) – Freelancer

0

Essayez cette

Private Sub Items_ItemAdd(ByVal Item As Object) 
    Dim Recip As Recipient 

    If TypeOf Item Is Outlook.MailItem Then 

     Debug.Print Item.Subject 

     Set Item = Item.ReplyAll 
     Set Recip = olReply.Recipients.Add Item.SenderEmailAddress 
      Recip.Type = olTo 

     Item.HTMLBody = "Replied At: " & Now() 
     Item.display 
    End If 

End Sub