0

我正在尝试将以下代码转换为带有 xml.manifest 的 Microsoft 加载项,该加载项可以上传到云中,并且每次 Outlook 更新时都会下载,因为目前我们必须将其重新添加到每个人的 PC 中。我们正在使用带有 Add-in Express 的 COM 插件,但想摆脱它。最终产品需要将名为“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);

                }
4

2 回答 2

0

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

于 2021-09-02T20:36:02.940 回答
0

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

于 2021-09-02T20:38:31.623 回答