我正在尝试在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 = ('test@gmail.com');
theMailItem.Subject = ('test');
theMailItem.Body = ('test');
//theMailItem.Attachments.Add("C\\file.txt");
theMailItem.display();
}
catch (err) {
alert(err.message);
}
}
它正在工作(在Outlook中打开新的电子邮件窗口并预填充上述数据),但仅当应该添加附件的行被注释掉时。
如果是未注释的异常,则抛出“无法找到文件”,但文件存在。它可以作为附件在Outlook中手动添加。
看起来Outlook试图找到文件,但由于某种原因不能。 我尝试使用正斜杠,反斜杠和双反斜杠 - 没有运气。
在Windows 7和8中测试,结果相同。 它只需要从IE工作。
也许有人可以为上面的代码提供修复程序,或者有一段代码可以为Outlook添加附件?
或者可能知道某些需要更改的IE或Outlook设置?
非常感谢,无论如何。
答案 0 :(得分:1)
实际上我的路径错误,所以下面的代码完全正常工作,可以使用。它在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 = ('test@gmail.com');
theMailItem.Subject = ('test');
theMailItem.Body = ('test');
theMailItem.Attachments.Add("C\\file.txt");
theMailItem.display();
}
catch (err) {
alert(err.message);
}
}
答案 1 :(得分:0)
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