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