移动邮件

奥克托拉

新成员
已加入
2020年7月2日
留言内容
4
编程经验
Beginner
你好,
我找到了一个代码,该代码允许将选定的邮件移动到选定的文件夹(外观)。它可以工作,但是当我运行代码然后选择任何邮件时,它将被移至"2019"文件夹。我希望该过程仅对第一个选定的邮件有效。有人知道这是否可能吗?

这是我的代码:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using System.IO;
using Microsoft.Office.Interop.Outlook;
 
namespace deplacermail
{
    public partial class ThisAddIn
    {
        private Explorer currentExplorer;
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            currentExplorer = this.Application.ActiveExplorer();
            currentExplorer.SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(CurrentExplorer_Event);
        }
 
        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            // Remarque*: Outlook ne déclenche plus cet événement. Si du code
            //    doit s'exécuter à la fermeture d'Outlook (consultez //go.microsoft.com/fwlink/?LinkId=506785)
        }
 
        public void CurrentExplorer_Event()
        {
            Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); //sélectionne la boîte de réception
            Outlook.MAPIFolder selectedFolder = this.Application.ActiveExplorer().CurrentFolder; // dossier sélectionné -> inutile?
            string path = selectedFolder.FolderPath;
            Outlook.MAPIFolder destFolder = inBox.Folders["2019"]; // Dossier où l'on veut déplacer le mail
 
                if (this.Application.ActiveExplorer().Selection.Count > 0)
                {
                    Object selObject = this.Application.ActiveExplorer().Selection[1]; // mail sélectionné
                    Outlook.MailItem moveMail = null; //initialisation
                    if (selObject is Outlook.MailItem)
                    {
                        moveMail = selObject as Outlook.MailItem;
                        moveMail.Move(destFolder); // Les mails sont déplacés dans le dossier choisi
 
 
                    }
                }
 
 
 
        }
 
        #region Code généré par VSTO
 
        /// <summary>
        /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
        /// le contenu de cette méthode avec l'éditeur de code.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
 
        #endregion
    }
}
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,536
地点
弗吉尼亚州切萨皮克
编程经验
10+
好吧,这就是问题所在"found code"。您需要了解它的作用。在这种情况下,它会挂接到选择更改事件并对所选项目进行操作。当然,一旦邮件项被移动,将有一个新的选择。如此循环重复。

您将需要更改代码,以便在按下按钮而不是更改选择时执行移动逻辑。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,933
地点
英国
编程经验
10+
如果您认真学习编程知识,则需要停止在线查找代码。开始阅读有关语言和框架的文档,然后开始编写自己的代码。当您编写自己的代码时,您会知道它的作用,但是当您从其他人那里获取代码时,您可能会传播自己的知识(无论该代码所基于的语言是什么),或者您需要准备从中得出逻辑上的谜语从中获得用户的用户。

您走错了学习曲线。
 
最佳 底部