ActiveX - 自动化服务器无法创建对象

时间:2011-03-01 16:19:22

标签: javascript activex

我有一个网页,我需要从中发送电子邮件给。我需要从浏览器发送一封大邮件。因为内容大于查询字符串允许的内容,我需要依赖Active X.我想通过Outlook发送此电子邮件。为了做到这一点,我写了以下代码:

try {
  var to = "";
  var cc = "";
  var subject = "Action Required";
  var body = GenerateEmailBody();

  var outlook = new ActiveXObject('Outlook.Application');
  var outlookNamespace = outlook.GetNameSpace('MAPI');

  var message = outlookNamespace.CreateItem(0);
  message.Display();
  message.To = to;
  message.Subject = subject;
  message.Body = body;
  message.GetInspector.WindowState = 2;
} catch (err) {
  alert("Unable to send email. " + err);
}

执行此代码时,出现以下错误:

ReferenceError: ActiveXObject is not defined 

我做错了什么?

谢谢!

5 个答案:

答案 0 :(得分:16)

错误“自动化服务器无法创建对象”表示浏览器的安全设置太低,无法运行ActiveX控件。您必须将页面移动到受信任的站点列表并降低ActiveX设置,以便它可以运行。

就个人而言,我会像瘟疫一样避免使用ActiveX,因为它会锁定你进入IE唯一的世界。因此,为什么我们仍然有人坚持使用IE6。

您尝试只是预加载邮件,可以使用mailto:

答案 1 :(得分:6)

a)转到工具 - > Internet选项

b)选择安全标签

c)单击“可信站点”(或“本地Intranet,具体取决于您的站点是否可信)”

d)点击自定义级别

e)确保启用“初始化和脚本活动x控件未标记为可安全编写脚本” - 这是在Activex控件和插件部分下方向滚动条的1/4处。

单击“确定”,“确定”。

完成此操作后,清除浏览器cookie和缓存。关闭所有浏览器会话。重新打开IE以启动您的网站。

尝试禁用步骤(e)中的设置以查看问题是否回来 - 这可以让您更深入地了解问题。

来源:IE9, Automation server can't create object error while using CertEnroll.dll

答案 2 :(得分:2)

您无法在浏览器中创建“Outlook.Application”。这可能有以下几个原因:

  • 未标记为初始化安全或脚本安全
  • 设置了kill bit

您可以使用POST将电子邮件发送到服务器吗?

答案 3 :(得分:1)

ActiveXObject对象仅在Internet Explorer上可用,并且可能受到限制,具体取决于您的网页所在的区域(本地,内部网或互联网)。

您是否要从将在互联网上托管的网页发送电子邮件?然后,你唯一的选择,禁止mailto-link,从服务器发送电子邮件。如何做到完全取决于您的服务器端技术。

答案 4 :(得分:0)

启用启用,工具菜单-> Internet选项->安全->自定义级别->“在IE上初始化ActiveX并编写脚本

相关问题