ActiveX - сервер автоматизации не может создать объект - PullRequest
10 голосов
/ 01 марта 2011

У меня есть веб-страница, с которой мне нужно отправить электронное письмо. Мне нужно отправить БОЛЬШОЕ электронное письмо из браузера. Поскольку содержимое больше, чем позволяет строка запроса, мне нужно полагаться на 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 ]

16 голосов
/ 01 марта 2011

Ошибка «Сервер автоматизации не может создать объект» означает, что параметры безопасности вашего браузера слишком низкие для запуска элемента управления ActiveX.Вы должны переместить свою страницу в список доверенных сайтов и понизить настройки ActiveX, чтобы она могла работать.

Лично я бы избегал ActiveX, как чумы, поскольку он блокирует вас только в мире IE.Следовательно, почему у нас все еще есть люди, придерживающиеся IE6.

Если вы просто пытаетесь предварительно загрузить почтовое сообщение, вы можете использовать mailto:

6 голосов
/ 06 октября 2016

а) Зайдите в Инструменты -> Свойства обозревателя

б) Выберите вкладку безопасности

c) Нажмите на надежные сайты (или локальную интрасеть в зависимости от того, является ли ваш сайт надежным или нет)

г) Нажмите на пользовательский уровень

e) Убедитесь, что «Инициализировать и активировать элементы управления сценария x не помечены как безопасные для сценариев» - это относится к разделу «Элементы управления ActiveX и подключаемые модули» в направлении 1/4 полосы прокрутки.

Нажмите ОК, ОК.

После этого очистите файлы cookie и кеш браузера. Закройте все сеансы браузера. Откройте IE, чтобы запустить ваш сайт.

Попробуйте отключить настройку на шаге (e), чтобы увидеть, возвращается ли проблема - это должно дать более глубокое понимание проблемы.

Источник: IE9, сервер автоматизации не может создать объектную ошибку при использовании CertEnroll.dll

2 голосов
/ 01 марта 2011

Вы не сможете создать приложение Outlook.Application из браузера. Это может быть по нескольким причинам:

  • Он не помечен как безопасный для инициализации или безопасный для сценариев
  • У него установлен бит уничтожения

Можете ли вы использовать POST для отправки электронной почты на сервер?

1 голос
/ 01 марта 2011

Объект ActiveXObject доступен только в Internet Explorer и может подвергаться ограничениям в зависимости от того, в какой зоне находится ваша страница (локальная, интрасеть или Интернет).

Хотите отправить электронное письмо с веб-страницы, которая будет размещена в Интернете? Тогда единственный вариант, кроме почтовой ссылки, - это отправка электронной почты с сервера. Как это сделать, полностью зависит от вашей серверной технологии.

0 голосов
/ 18 апреля 2019

сделать активным, Меню инструментов -> Свойства обозревателя -> Безопасность -> Пользовательский уровень -> «Инициализировать и сценарий ActiveX на IE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...