javascript для запуска клиентского Outlook с использованием ActiveXObject с вложением из папки Downloads в локальной системе. - PullRequest
0 голосов
/ 06 мая 2020

Мне нужна помощь с этой проблемой. Я использую приведенный ниже код для запуска нового сообщения электронной почты клиента с вложением, он отлично работал, когда я использовал точный путь к файлу, например 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);

1 Ответ

0 голосов
/ 06 мая 2020

Источником вложения может быть файл (представленный полным путем в файловой системе с именем файла) или элемент Outlook, составляющий вложение. Метод не принимает переменные среды, необходимо указать полный путь к файлу.

Чтобы получить полный путь к файлу, вы можете использовать следующий код:

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

Итак тогда вы сможете прикрепить файл:

theMailItem.Attachments.Add(path+FileName);
...