2016-09-14 9 views
1

Outlookには多くのメールボックスがあり、デフォルト以外のメールボックス([email protected])のいずれかで受信メールを処理するために次のコードを設定しています。VBAデフォルト以外のメールボックスでのメールへの返信

このボックスに到着したすべてのメールを処理し、コンテンツに対してアクションを実行してから、そのメールに返信します。

問題は、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 
関連する問題