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 

Что я делаю неправильно?

Спасибо!

Ответ 1

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

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

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

Ответ 2

а) Перейдите на Tools--> Свойства обозревателя.

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

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

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

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

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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