Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Как окрыть Outlook и заполнить необходимые поля ?


Автор: t77 20.7.2009, 13:15
Доброго времени суток!
Мне необходимо из JavaScript открыть окно Microsoft Outlook'а с уже заполненными полями To, Subject, Body, которые имеются у меня в виде переменных. Ну и естественно послать это самое письмо по адресу, который укажет пользователь.
Как это сделать ?

Автор: t77 20.7.2009, 13:48
Нашел работающий код:
Код

function sendMail()
        {
            var outlookApp = new ActiveXObject("Outlook.Application");
            var nameSpace = outlookApp.getNameSpace("MAPI");
            mailFolder = nameSpace.getDefaultFolder(6);
            mailItem = mailFolder.Items.add('IPM.Note.FormA');
            mailItem.Subject="CUSTOMER SERVICE";
            //mailItem.To = document.frmM.txtEmail.value;
            mailItem.HTMLBody = "SOME HTML CODE";
            mailItem.display (0);
            
        }

Только не совсем понимаю все что здесь делается...?
Просьба к гуру прокоментировать строки.

Добавлено через 2 минуты и 15 секунд
непонимаю строки 2,3,4 ??? smile 

Автор: Samotnik 20.7.2009, 23:46
Цитата(t77 @  20.7.2009,  13:48 Найти цитируемый пост)
непонимаю строки 2,3,4

строка 2 
Цитата(t77 @  20.7.2009,  13:48 Найти цитируемый пост)
{

- (фигурная скобочка) обозначает начало реализации функции  sendMail()  В конце предполагается закрытие этой скобочки }  (пример)
строка 3
Цитата(t77 @  20.7.2009,  13:48 Найти цитируемый пост)
 var outlookApp = new ActiveXObject("Outlook.Application");

очень просто  smile  создается объект  Active X  компоненты http://www.google.com.by/search?q=javascript+active+x&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-GB:unofficial&client=firefox-a
строка 4
Цитата(t77 @  20.7.2009,  13:48 Найти цитируемый пост)
  var nameSpace = outlookApp.getNameSpace("MAPI");

После создания Active X объекта  можно совершать первые действия над MS Outlook

а вообще по сабжу делается это просто через mailto
документация элементарная и ее очень много http://www.webdevelopersnotes.com/tips/html/html_mailto_attribute_html_tips.php3

Автор: t77 21.7.2009, 09:36
Мне не понятны строки:
Код

var nameSpace = outlookApp.getNameSpace("MAPI");
mailFolder = nameSpace.getDefaultFolder(6);
mailItem = mailFolder.Items.add('IPM.Note.FormA');

Кто-нибудь может объяснить, в чем смысл каждой из них ???
Как я говорил, вышеприведенный код работает! 
Возникла проблема, не получается никак вставить линк в тело письма...
Дело в том, что мне необходимо в теле письма вставить линк, при нажатии на который должна сработать моя функция. 
Что то в этом роде:
Код

function sendMail()
{
  var outlookApp = new ActiveXObject("Outlook.Application");
  var nameSpace = outlookApp.getNameSpace("MAPI");
  mailFolder = nameSpace.getDefaultFolder(6);
  mailItem = mailFolder.Items.add('IPM.Note.FormA');
  mailItem.Subject= "SOME HTML CODE";
  mailItem.HTMLBody = "<html><head></head><body><a a href='#' onclick='test()'>click me</a></body></html>";
  mailItem.display (0);
}
function test()
{
    alert("Privet");
    open.window("www.google.ru");
}

Запускаю данный код, открывается Outlook, кликаю на линк- 'click me' и ничего не происходит  smile 
В чем дело ? Почему не срабатывает onclick ?


Автор: t77 22.7.2009, 20:57
Нашел ответ на свой вопрос...
Оказывается, как не странно, из целей безопасности, в тело письма в Outlook, не возможно добавить какой-либо код JavaScript.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)