我可以使用 Outlook 加载项保存电子邮件并更新用户 PC 上的文件吗

Can I use an Outlook Add-In to save an email and also update a file on the users PC

我正在尝试将下面的代码转换为带有 xml.manifest 的 Microsoft 加载项,它可以上传到云端,每次 Outlook 更新时都会下载,因为目前我们必须重新添加它到每个人的电脑。我们使用带有 Add-in Express 的 COM-addin,但想摆脱它。 最终产品需要将名称为'email-import.msg'的邮件保存在某个文件夹“C:\mgatemp\user-zan”中,并更新另一个文件以表明电子邮件已存放在那里。

以下供参考

            var msg = this.OutlookApp.ActiveExplorer().Selection[1];
            if (msg is Outlook.MailItem)
            {
                try
                {
                    string basepath = @"c:\mgatemp\";
                    Outlook.MailItem mailitem = (msg as Outlook.MailItem);
                    mailitem.SaveAs(basepath + user + "-zan" + @"\email-import.msg");
                    
                    FileStream myFileStream = File.Open(basepath + user + "-zan" + @"\sentinel.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                    myFileStream.Close();
                    myFileStream.Dispose();


                    System.IO.File.SetLastWriteTimeUtc(basepath + user + "-zan" + @"\sentinel.txt", DateTime.UtcNow);


                     
                 }                  
                catch
                {
                    MessageBox.Show("could note write for user zan/sentinel" + user);

                }

基于 JS 的插件无法以 MSG 格式保存消息 - 该格式是 Windows Outlook 特定的(它是基于 IStorage 的)并且只能在 Outlook 对象模型和扩展 MAPI 中访问框(仅限 Windows)。 JS也无法访问本地文件系统。

这不可能。您可能会考虑稍微更改加载项的实现。 Outlook Web 加载项 运行 在 Outlook 中当前所选项目的上下文(项目的上下文)下,并且没有对文件系统的完全访问权限。通常 Web 应用程序 运行 在沙盒环境中,其中文件 IO 操作是在浏览器的缓存文件夹上执行的。