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

use*_*192 11 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);
}
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,我收到以下错误:

ReferenceError: ActiveXObject is not defined 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢!

epa*_*llo 16

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

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

你试图只是预加载邮件,你可以使用mailto:

  • mailto的问题在于它仅限于网址的大小.我的内容长度大于URL允许的长度. (2认同)

Tha*_*nga 8

a)转到工具 - > Internet选项

b)选择安全选项卡

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

d)单击"自定义级别"

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

单击确定,确定.

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

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

来源:IE9,自动化服务器在使用CertEnroll.dll时无法创建对象错误

  • 复制自/sf/ask/1098022831/ (2认同)

Jim*_*mmy 2

您不应该能够从浏览器中创建“Outlook.Application”。这可能有几个原因:

  • 它没有标记为“初始化安全”或“脚本安全”
  • 它已设置终止位

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