|
19.02.2008, 16:57 | #1 |
Участник
|
Проблема с отсылкой писем через Outlook
На сервере где находтся AOS и EP установлен клиент outlook.
Через портал идет отсылка писем используя класс smmOulookEmail. Если портал был загружен с сервреа используя RDP, все корректно отрабатывает. Если же на клентской машине, то в методе createMailItem в строке: outlook = new COM(#outlookApplication); происходит зависание системы. Из-за чего такое поведение? Как избежать подобного? AX 4.0, MS SQL 2005 |
|
19.02.2008, 17:44 | #2 |
Участник
|
А на клиентской машине установлен COM объект с указанным Вами ProgID? Поищите его вручную в реестре.
|
|
20.02.2008, 10:45 | #3 |
Участник
|
установлен outlook.application.12
|
|
20.02.2008, 12:24 | #4 |
MCT
|
тут надо бы проверить что
X++: #define.outlookapplication("outlook.application") outlook = new COM (#outlookapplication); X++: dll _mapiDLL = new DLL('mapi32.dll'); |
|
20.02.2008, 12:59 | #5 |
Участник
|
X++: #define.outlookapplication([COLOR=red]"outlook.application"[/COLOR]) outlook = [COLOR=blue]new[/COLOR] COM (#outlookapplication); Цитата:
dll _mapiDLL = new DLL('mapi32.dll');
|
|
20.02.2008, 13:17 | #6 |
MCT
|
Это еще один способ отправки почты, их на самом деле превеликое множество.
|
|
20.02.2008, 13:42 | #7 |
Участник
|
Вот через mapi32. Осталось на X++ переписать.
X++: MapiMessage Message = { 0 } ; Message.lpszSubject="bla-bla"; Message.lpszNoteText="bla-bla"; MapiRecipDesc From = { 0 } ; From.lpszName="name"; From.lpszAddress="[EMAIL="name@name.ru"]name@name.ru[/EMAIL]"; Message.lpOriginator=&From; MapiRecipDesc To[1] = { 0 }; To[0].ulRecipClass=1; To[0].lpszName="name"; To[0].lpszAddress="[EMAIL="name@name.ru"]name@name.ru[/EMAIL]"; Message.nRecipCount=1; Message.lpRecips=To; Message.nFileCount=0; Message.lpFiles=NULL; typedef ULONG (FAR PASCAL *MAPISendMail) (LHANDLE lhSession, ULONG ulUIParam, lpMapiMessage lpMessage, FLAGS flFlags, ULONG ulReserved); HMODULE h = LoadLibrary("Mapi32.dll"); if(h!=NULL) { MAPISendMail fnSend = (MAPISendMail)GetProcAddress(h,"MAPISendMail"); if(fnSend!=NULL) { int ret = fnSend(0, (ULONG)Form1->Handle, &Message, MAPI_LOGON_UI | MAPI_NEW_SESSION, 0); if(ret==SUCCESS_SUCCESS) Application->MessageBox("Message sends SUCCESSful", "Ok!", MB_OK); else { Application->MessageBox(DecodeErrorMessage(ret).c_str(), "Error", MB_OK); } } else Application->MessageBox("Can't get DLL function", "Error!", MB_OK); FreeLibrary(h); } else Application->MessageBox("Can't load DLL", "Error!", MB_OK); |
|
20.02.2008, 14:20 | #8 |
SAP
|
тут все предлагают что писать, а зачем писать не проще ли взять готовое.
смотрите следующие объекты: \Classes\SysEmailBatch данный класс использует класс \Classes\SysMailer для отправки писем, текст писем настраивается в форме \Forms\SysEmailTable |
|
20.02.2008, 14:49 | #9 |
MCT
|
|
|
20.02.2008, 15:31 | #10 |
Участник
|
Господа, дело в том, что функционал отправки писем я реализовал. Для AX3 все работает на ура. Но вот при переносе на 4-кувозникли трудности, которые я описал в первому посте.
Мне необходимо разобраться, почему при попытки отправки почты с клиента - COM обьект не создается а происходит зависание на строчке кода отвечающей за его создание. |
|
26.02.2008, 19:01 | #11 |
Участник
|
На данный момент, проблема решена следущюим образом:
outlook установлен и на сервере и на клиенте. Устанавил программу Outlook Security. Произвел первый запуск отправки письма из кода на сервере - появилось окошко с запросом действия - разрешить всегда. После этого все работает на ура. Но остался один вопрос! А можно ли сделать так что-бы не устанавливать на клиенте outlook? Или это невозможно? |
|
26.02.2008, 19:27 | #12 |
Участник
|
Насколько я понимаю, проблема в том, что код отсылки письма работает там, где открыт портал, т.е. либо на клиенте, либо на сервере. Используйте для отправки писем класс-обертку, который будет всегда вызываться на сервере, - тогда надобность в Outlook'е на клиенте отпадет.
|
|
Теги |
ax4.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Проблема с импортом из Excel через COM | 18 | |||
Проблема доступа через COM Connector | 0 | |||
Проблема с запуском business connector'a через удал доступ | 1 |
|