簡體   English   中英

如何查找電子郵件轉發到的電子郵件地址(在 MimeKit 中)

[英]How to find the email address an email was forwarded to (in MimeKit)

我們有一個萬能的電子郵件地址,電子郵件被轉發到 [an-id]@ourdomain.com

然后我們在代碼中提取這些電子郵件以處理它們……處理並不重要。

        using (ImapClient client = new ImapClient())
        {
            var credentials = new NetworkCredential(settings.Value.Email.User, settings.Value.Email.Password);
            var uri = new Uri("imaps://" + settings.Value.Email.Server);
            client.Connect(uri);
            client.AuthenticationMechanisms.Remove("XOAUTH2");
            client.Authenticate(credentials);
            client.Inbox.Open(FolderAccess.ReadWrite);

            IList<IMessageSummary> messages = null;

            foreach (var message in client.Inbox.Fetch(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId | MessageSummaryItems.BodyStructure))
            {
                // Processing
            }
        }

但是,“message.Envelope.To.Mailboxes”包含電子郵件發送到的原始電子郵件地址 (myemail@gmail.com) 而不是它轉發到的電子郵件地址 ([an-id]@ourdomain.com)。 據我所知,[an-id]@ourdomain.com 沒有出現在信封中的任何地方。

有沒有辦法找到這個電子郵件地址? (我們基本上需要 ID 用於路由)。

或者有沒有我應該使用不同的方法來實現這一點(將電子郵件路由到一個我可以用來處理的 ID 的地方)。

電子郵件中的某些標頭包含以下信息:X-Orig-To或X-Forwarded-To

            var fields = new HashSet<string>(){ "X-Orig-To", "X-Forwarded-To" };
            foreach (var message in client.Inbox.Fetch(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId | MessageSummaryItems.BodyStructure, fields))
            {
                  var email = message.Headers["X-Orig-To"];
            }

這些似乎包含目標電子郵件地址,並解決了問題。

**我目前不確定為什么會有不止一個,或者是否標准化

您是否找到了解決方案? 我正在尋找一個可以提供轉發電子郵件的 InboxName/InboxAddress 的字段。 我看不到

“X-Orig-To”,所有電子郵件中的字段。 “X-Forwarded-To” - > 未提供目標電子郵件地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM