簡體   English   中英

將附件添加到ActiveX Outlook(2016)郵件

[英]Add attachment to ActiveX Outlook (2016) mail

上下文

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 )或圖像的公共URL 確實可行。 所以我的猜測是它與權限或安全性有關。 有人知道如何解決這個問題嗎?

PS:我知道使用ActiveX控件不是理想的工作方式(瀏覽器限制,安全考慮...),但實際情況並非如此,我無法改變。

您無法在OOM中將URL傳遞給MailItem.Attachments.Add (它確實適用於RDOMail.Attachments.Add 贖回 )。 Outlook對象模型僅允許指向本地文件的完全限定路徑或指向另一個項目(例如MailItem)的指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM