2016-09-14 3 views
1

Outlook에 많은 편지함이 있으며 기본이 아닌 편지함 ([email protected]) 중 하나에서 수신 메일을 처리하도록 다음 코드를 설정했습니다.VBA 기본값이 아닌 편지함에있는 메일에 회신하기

코드가이 상자에 도착하는 모든 메일을 처리하고 콘텐츠에 대한 작업을 수행 한 다음 해당 메일에 대해 ReplyAll을 실행합니다.

문제는 ReplyAll은 보낸 사람이 아닌받는 사람 ([email protected])으로 사서함 자체 만 포함한다는 것입니다. 그 결과 발신자는 응답을받지 못하지만 상자는 반복적으로 송수신을 계속합니다. 원본에 둘 이상의 사람이있을 경우 메일 사본을 얻지 만 발신자는 본인이 아닙니다.

ReplyAll을 사용할 때 어떻게 사서함을받는 사람으로 올바르게 식별 할 수 있습니까? 통찰력이 인정되었습니다! 보낸 사람을 보장하기 위해

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

는 여전히 문제 – 0m3r

+0

감사 Om3r을 가진 경우 알려보십시오, 나는 그것을받는 사람 (다른 무한 루프) 인 경우 내가 상자 자체를 제거 할 경우 아래의 팁을 다음과 item.SendEmailAddress 추가 제외 된 경우. 이것은 실행 가능한 솔루션으로 입증되었습니다. 더 우아한 해결책을 찾을 수 없었습니다. 왜이 문제가 발생하는지 알지 못합니다. 아직 수정하려고합니다. 기본 메일 리스너가 아닌 다른 사용자에게 도움을 주셔서 감사합니다. :) – Freelancer

답변

1

:) 사전에 감사가 myReply에 포함되어, 당신은 myReply.To에 Item.SenderEmailAddress를 추가 할 수 있습니다.

Item.SenderEmailAddress가 "[email protected]"이면 종료 할 수 있습니다.

+0

감사합니다. 이유를 모르겠습니다. 회신 옵션을 사용할 때 상자 자체를 추가하지만이 구현하고 지금은 제외한 모든받는 사람에게 회신 :) – Freelancer

0

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 
관련 문제