открытие Outlook через javascript

Кто-нибудь знает, как открыть Outlook с помощью Javascript?

Я получаю исключение (в IE6) при использовании этого кода:

var outlookApp = new ActiveXObject("Outlook.Application");

person Wondering    schedule 22.04.2009    source источник
comment
Вы понимаете, что это сделает ваш веб-сайт очень зависимым от платформы, если вы заставите его работать?   -  person Arjan    schedule 22.04.2009


Ответы (3)


Вы определенно можете это сделать, код выглядит так:

var objO = new ActiveXObject('Outlook.Application');     
var objNS = objO.GetNameSpace('MAPI');     
var mItm = objO.CreateItem(0);     
mItm.Display();     
mItm.To = p_recipient;
mItm.Subject = p_subject;
mItm.Body = p_body;     
mItm.GetInspector.WindowState = 2;

p_recipient, p_subject и p_body являются переданными переменными.

Вы должны убедиться, что это работает на веб-странице, которой доверяют пользователи, так как в противном случае это вызовет исключения.
То есть он должен находиться в правильной зоне в IE с правильными настройками, настроенными для этой зоны.

person Bravax    schedule 22.04.2009
comment
Есть ли способ открыть почтовый ящик Outlook через javascript, не открывая окно для отправки новой почты? - person Ray Lionfang; 27.03.2015
comment
да. Ты можешь это сделать. Получите входящие var test = objNS.GetDefaultFolder(5); - person Praveen Gopal; 17.09.2018
comment
Всегда имейте ввиду -> ActiveXObject только для IE. Если вам нужен хром, вам нужно установить расширение вкладки IE в хром - person Praveen Gopal; 19.09.2018

Вы не можете открывать настольные приложения через JavaScript по очевидным причинам безопасности. В приведенном вами примере используется ActiveX, запатентованная технология Microsoft, доступная только в Internet Explorer.

Если вы просто хотите открыть состав сообщения в почтовом клиенте пользователя с предварительно заполненными полями, вы можете использовать mailto: префикс гиперссылки. Это позволяет указать получателей, тему и текст сообщения. Пример:

<a href="mailto:[email protected]?subject=You can specify subject too">

Если у вас нет необходимости специально использовать Outlook (и я бы посоветовал вам пересмотреть свои требования, если это так), гораздо более желательно открыть любой почтовый клиент по умолчанию, который установил пользователь.

person roryf    schedule 22.04.2009
comment
Привет, Рори, я попробовал ‹a href=mailto:... но не могу отправить через него HTML-элементы. Скажем, ссылку (‹a›)? Есть идеи? - person Wondering; 22.04.2009
comment
Почему вы хотите это сделать? - person roryf; 22.04.2009
comment
Я предполагаю, что большинство современных почтовых клиентов поддерживают rfc-editor.org/rfc/rfc2368.txt, который включает тело, но НЕ допускает HTML. Прежде всего: не у всех ваших посетителей будет настроенный почтовый клиент (не будет работать из коробки для веб-почты, такой как Gmail). См. email.about.com/library/misc/blmailto_encoder.htm. также хотите убедиться, что адрес получателя не может быть прочитан спам-ботами. - person Arjan; 22.04.2009
comment
ну, вы МОЖЕТЕ открывать настольные приложения, используя Javascript, используя функции ActiveX только для IE, а также некоторые ослабленные настройки безопасности. Не очень полезно просто предположить, что у него нет веских причин для использования этого метода. - person nickf; 28.04.2009
comment
Я не просто предположил это, я заявил, что это можно сделать с помощью ActiveX, но что использование стандартного mailto: было лучшей идеей, какой это IMO. - person roryf; 28.04.2009
comment
У mailto есть ограничения, например, нельзя форматировать тело электронной почты с помощью html. Не могу добавить вложение и т.д. - person Didier A.; 04.08.2012

Кажется, я припоминаю, что Outlook регистрирует свою собственную схему URI (!), так что вы действительно можете очень просто и легко открыть его по гиперссылке вида outlook:, если это действительно то, что вы хотите сделать. К сожалению, у меня больше нет копии Outlook, и с тех пор, как я пробовал это, прошли годы, поэтому я не могу убедиться, что он все еще работает.

Отредактировано добавлено: Хорошо! Ссылка отображается как ссылка в предварительном просмотре, но не в фактическом опубликованном ответе. В любом случае, вот некоторый HTML-код, чтобы прояснить мой смысл:

<a href="outlook:">Click here to launch Microsoft Outlook</a>
person zaphod    schedule 28.04.2009
comment
Я только что проверил, и это не работает в Firefox, не пробовал IE. - person roryf; 28.04.2009
comment
Не работает и в IE. Вероятно, ‹a href=outlook:› не работает для Outlook 2007. - person Wondering; 04.05.2009