我有一个网页,我需要从中发送电子邮件给。我需要从浏览器发送一封大邮件。因为内容大于查询字符串允许的内容,我需要依赖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
我做错了什么?
谢谢!
答案 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”。这可能有以下几个原因:
您可以使用POST将电子邮件发送到服务器吗?
答案 3 :(得分:1)
ActiveXObject对象仅在Internet Explorer上可用,并且可能受到限制,具体取决于您的网页所在的区域(本地,内部网或互联网)。
您是否要从将在互联网上托管的网页发送电子邮件?然后,你唯一的选择,禁止mailto-link,从服务器发送电子邮件。如何做到完全取决于您的服务器端技术。
答案 4 :(得分:0)
启用启用,工具菜单-> Internet选项->安全->自定义级别->“在IE上初始化ActiveX并编写脚本