Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:打开Outlook并向新电子邮件添加附件_Javascript_Email_Outlook - Fatal编程技术网

Javascript:打开Outlook并向新电子邮件添加附件

Javascript:打开Outlook并向新电子邮件添加附件,javascript,email,outlook,Javascript,Email,Outlook,我正在尝试在Outlook中向新电子邮件添加附件 如下所示(摘自): 它正在工作(新的电子邮件窗口在Outlook中打开,并预先填充了上述数据),但只有当本应添加附件的行被注释掉时,它才会工作 在未注释的情况下,会引发异常,如“找不到文件”,但文件不存在。它可以作为附件手动添加到Outlook中 看起来Outlook正在尝试查找文件,但由于某些原因无法找到。 我试着用正斜杠、反斜杠和双反斜杠——运气不好 在Windows7和Windows8中测试,结果相同。 它只需要从IE开始工作 也许有人可以

我正在尝试在Outlook中向新电子邮件添加附件

如下所示(摘自):

它正在工作(新的电子邮件窗口在Outlook中打开,并预先填充了上述数据),但只有当本应添加附件的行被注释掉时,它才会工作

在未注释的情况下,会引发异常,如“找不到文件”,但文件不存在。它可以作为附件手动添加到Outlook中

看起来Outlook正在尝试查找文件,但由于某些原因无法找到。 我试着用正斜杠、反斜杠和双反斜杠——运气不好

在Windows7和Windows8中测试,结果相同。 它只需要从IE开始工作

也许有人可以提供上述代码的修复程序,或者有一段代码将附件添加到Outlook

或者可能知道某些IE或Outlook设置需要更改


无论如何,非常感谢。

事实上我走错了路,所以下面的代码完全可以使用。它在Windows8和IE11上进行了测试

当然,它只能在IE中工作,不能在其他浏览器上工作。它会打开一个弹出窗口,询问运行ActiveX的权限

   function sendEmail(){
       try{
          var theApp = new ActiveXObject("Outlook.Application");
          var objNS = theApp.GetNameSpace('MAPI');
          var theMailItem = theApp.CreateItem(0); // value 0 = MailItem
          theMailItem.to = ('test@gmail.com');
          theMailItem.Subject = ('test');
          theMailItem.Body = ('test');
          theMailItem.Attachments.Add("C:\\file.txt");
          theMailItem.display();
      }
      catch (err) {
         alert(err.message);
      } 
   }

您是否尝试将文件协议用于Attachment.Add?ie-'file:///C:/file.txt“旁注:这是否适用于有限且非常受控的环境?如果不希望它破裂。。。经常(我从经验中知道)@Michael Hobbs。是的,是的。现在我想起来了,这可能不可能像你尝试的那样。最近,我做了一些客户端文件工作,JS似乎无法从浏览器的沙箱中走出。我的意思是,用户必须先将一个文件放入沙箱,然后JS才能使用它。最重要的是,当一个文件被引入时,它不会带来它的路径。如果引入文件夹,则文件的路径将为/name或/folder/name。@Michael Hobbs。据我所知,Javascript所做的只是通过ActiveXControl传递到Outlook的路径。因此,我认为这里没有任何[安全]问题。可能是错误的。它说“路径不存在。请验证路径是否正确。”位于Attachemts.Add();你能帮我一下吗?
   function sendEmail(){
       try{
          var theApp = new ActiveXObject("Outlook.Application");
          var objNS = theApp.GetNameSpace('MAPI');
          var theMailItem = theApp.CreateItem(0); // value 0 = MailItem
          theMailItem.to = ('test@gmail.com');
          theMailItem.Subject = ('test');
          theMailItem.Body = ('test');
          theMailItem.Attachments.Add("C:\\file.txt");
          theMailItem.display();
      }
      catch (err) {
         alert(err.message);
      } 
   }
       try{
          var theApp = new ActiveXObject("Outlook.Application");
          var objNS = theApp.GetNameSpace('MAPI');
          var theMailItem = theApp.CreateItem(0); // value 0 = MailItem
          theMailItem.to = ('test@gmail.com');
          theMailItem.Subject = ('test');
          theMailItem.Body = ('test');
          theMailItem.Attachments.Add("C:\\file.txt");
          theMailItem.display();
      }
      catch (err) {
         alert(err.message);
      } 
   }

semi colon is missing in the path