zoukankan      html  css  js  c++  java
  • inbox.MoveTo Folder does not move message out of inbox

    inbox.MoveTo Folder does not move message out of inbox #160

     Closed
    vnwind opened this issue on 14 Mar 2015 · 3 comments

    Comments

     
    Projects
    None yet
    2 participants
    @vnwind@jstedfast
    @vnwind
     

    vnwind commented on 14 Mar 2015

    Hi I am trying to move a message to a different folder using inbox.MoveTo(uid, matchFolder);. Here is my code:

    foreach (var uid in matchedMsgList)
    {                       
        var matchFolder = imapClient.GetFolder(folderName);
        if (matchFolder != null)
            inbox.MoveTo(uid, matchFolder);
    }

    However, the message shows up on both inbox and matchFolder under outlook. View the message detail and it is label as "Inbox" & "matchFolder"

    How can I move the message out of Inbox completely? Or is it has something to do with my outlook program?

    Thanks for your help

     

    @vnwind vnwind changed the title from Move.ToFolder to inbox.MoveTo Folder does not move message out of inbox on 14 Mar 2015

    @jstedfast jstedfast added the question label on 14 Mar 2015

    @jstedfast
     
    Owner

    jstedfast commented on 14 Mar 2015

    If you look at the source code for the MoveTo() method, what you'll notice is that there are several code paths depending on the features that the IMAP server supports.

    If the IMAP server supports the MOVE extension, then MailKit's MoveTo() method will use the MOVEcommand. I suspect that your server does not support the MOVE command or you probably wouldn't be seeing what you are seeing.

    When the IMAP server does not support the MOVE command, MailKit has to use the COPY command to copy the message(s) to the destination folder. Once the COPY command has completed, it will then mark the messages that you asked it to move for deletion by setting the Deleted flag on those messages.

    If the server supports the UIDPLUS extension, then MailKit will attempt to EXPUNGE the subset of messages that it just marked for deletion, however, if the UIDPLUS extension is not supported by the IMAP server, then it cannot safely expunge just that subset of messages and so it simply stops there.

    My guess is that your server supports neither MOVE nor UIDPLUS and that is why Outlook continues to see the messages in your folder. I believe, however, that Outlook has a setting to show deleted messages with a strikeout (which you probably have disabled).

    So to answer your question more succinctly: After calling folder.MoveTo (...);, if you are confident that the messages marked for deletion should be expunged, call folder.Expunge ();

     
    @jstedfast
     
    Owner

    jstedfast commented on 14 Mar 2015

    FWIW, if you follow the directions in the FAQ for getting protocol logs, it should show you in more detail what I'm talking about and will confirm (or deny) my explanation.

  • 相关阅读:
    从B树、B+树、B*树谈到R 树
    从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA
    Linux Kafka源码环境搭建
    CentOS 关闭图形用户界面
    部署与管理ZooKeeper(转)
    spark 2.0.0集群安装与hive on spark配置
    hive on spark的坑
    Spark2.0.0源码编译
    hive spark版本对应关系
    CentOS7 设置集群时间同步
  • 原文地址:https://www.cnblogs.com/waw/p/8436291.html
Copyright © 2011-2022 走看看