上下文
SharePoint Online 环境中的文档库中的每个文档集的主页上都有一个按钮。单击该按钮时,将打开一个Outlook窗口,其中包含标题和正文集,文档集中的所有文件都应作为附件添加。
代码
这是我到目前为止的代码:
var olApp = new ActiveXObject("Outlook.Application");
var olNs = olApp.GetNameSpace("MAPI");
var olItem = olApp.CreateItem(0);
var signature = olItem.HTMLBody;
signature.Importance = 2;
olItem.To = "";
olItem.Cc = "";
olItem.Bcc = "";
olItem.Subject = "Pre filled title";
olItem.HTMLBody =
"<span style='font-size:11pt;'>" +
"<p>Pre filled body</p>" +
"</span>";
olItem.HTMLBody += signature;
olItem.Display();
olItem.GetInspector.WindowState = 2;
var docUrl = "https://path_to_site/Dossiers/13245_kort titel/New Microsoft Word Document.docx";
olItem.Attachments.Add(docUrl);
问题
当我运行此代码时,将打开一个Outlook窗口,其中所有内容都已正确设置。但是在添加附件的行上,我得到了非常模糊的错误消息:
SCRIPT8:操作失败。
我认为它可能是网址中的空格所以我替换了它们:
docUrl = docUrl.replace(/ /g, "%20");
也没有工作(同样的错误)并且提供这样的所有参数也不起作用:
olItem.Attachments.Add(docUrl, 1, 1, "NewDocument");
将路径传递到本地文件(例如C:/folder/file.txt
)或公开可用的网址 工作。所以我的猜测是它与权限或安全性有关。有人知道如何解决这个问题吗?
PS:我知道使用ActiveX控件不是理想的工作方式(浏览器限制,安全考虑......)但情况就是这样,而不是我的改变力量。
答案 0 :(得分:0)
您无法将网址传递给OOM中的MailItem.Attachments.Add
(它在RDOMail.Attachments.Add
的{{3}}中有效。 Outlook对象模型仅允许本地文件的完全限定路径或指向另一项(例如MailItem)的指针。