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设置?
非常感谢,无论如何。
答
其实我做了一个错误的道路,所以下面的代码是完全可行且可以使用。据测试,在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);
}
}
您是否尝试过使用Attachment.Add文件协议?即 - 'file:/// C:/file.txt' – Scot
备注:这是否适用于受限制的非常受控制的环境?如果不能指望它经常打破...... (我从经验中知道) –
@迈克尔霍布斯。是的。 – yurin