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

问题描述:

我试图将附件添加到Outlook中的新电子邮件。Javascript:打开Outlook并将附件添加到新电子邮件

像下面(从here拍摄):

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

这是工作(在Outlook中打开,并与上述数据预填充新的电子邮件窗口),但仅当应该添加附件行注释掉。

如果它是注释掉异常被抛出类似“文件无法找到”,但文件是存在的。它可以作为附件手动添加到Outlook中。

看起来展望试图找到文件,但不能因为某些原因。 我尝试了正斜杠,反斜杠和双反斜杠 - 没有运气。

在Windows 7和8中测试,结果相同。 它只需要从IE工作。

也许有人可以提供修复到上面的代码或具有工作一段代码,增加了附接到Outlook?

或者可能知道的哪些需要改变一些IE或Outlook设置?

非常感谢,无论如何。

+0

您是否尝试过使用Attachment.Add文件协议?即 - 'file:/// C:/file.txt' – Scot

+0

备注:这是否适用于受限制的非常受控制的环境?如果不能指望它经常打破...... (我从经验中知道) –

+0

@迈克尔霍布斯。是的。 – yurin

其实我做了一个错误的道路,所以下面的代码是完全可行且可以使用。据测试,在Windows 8和IE 11

相信它会在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 = ('[email protected]'); 
      theMailItem.Subject = ('test'); 
      theMailItem.Body = ('test'); 
      theMailItem.Attachments.Add("C\\file.txt"); 
      theMailItem.display(); 
     } 
     catch (err) { 
     alert(err.message); 
     } 
    }