首页 > 解决方案 > javascript 使用 ActiveXObject 运行客户端的 oulook,附件来自本地系统上的下载文件夹

问题描述

我需要帮助解决这个问题。我使用下面的代码运行带有附件的客户端 Outlook 新电子邮件,当我使用文件的确切路径(如 add. ("C:/USERS/MY USER NAME/Downloads/".fileName). 但是当我将其更改Add("%userprofile%/Downloads/"+fileName)为访问当前登录的用户时,它无法正常工作,没有错误,似乎找不到文件。有什么不对??或者不同的方式来做到这一点?

setTimeout(function(){
   var theApp = new ActiveXObject("Outlook.Application");
      var objNS = theApp.GetNameSpace('MAPI');
      var theMailItem = theApp.CreateItem(0); 
      theMailItem.Attachments.Add("%userprofile%/Downloads/"+FileName);
      theMailItem.display();
}, 2000);

标签: javascriptoutlookactivexobject

解决方案


附件的来源可以是文件(由带有文件名的完整文件系统路径表示)或构成附件的 Outlook 项目。该方法不接受环境变量,您必须指定完全限定的文件路径。

要获得完全限定的文件路径,您可以使用以下代码:

var ObjShell = new ActiveXObject("Shell.Application");
var wShell   = new ActiveXObject("WScript.Shell");
var path     = wShell.ExpandEnvironmentStrings("%userprofile%\\Downloads\\");

因此,您将能够附加一个文件:

theMailItem.Attachments.Add(path+FileName);

推荐阅读