|
|
|
|
#1 |
|
Участник
|
Проблема с отсылкой писем через Outlook
На сервере где находтся AOS и EP установлен клиент outlook.
Через портал идет отсылка писем используя класс smmOulookEmail. Если портал был загружен с сервреа используя RDP, все корректно отрабатывает. Если же на клентской машине, то в методе createMailItem в строке: outlook = new COM(#outlookApplication); происходит зависание системы. Из-за чего такое поведение? Как избежать подобного? AX 4.0, MS SQL 2005 |
|
|
|
|
#2 |
|
Участник
|
А на клиентской машине установлен COM объект с указанным Вами ProgID? Поищите его вручную в реестре.
|
|
|
|
|
#3 |
|
Участник
|
установлен outlook.application.12
|
|
|
|
|
#4 |
|
MCT
|
тут надо бы проверить что
X++: #define.outlookapplication("outlook.application") outlook = new COM (#outlookapplication); X++: dll _mapiDLL = new DLL('mapi32.dll'); |
|
|
|
|
#5 |
|
Участник
|
X++: #define.outlookapplication([COLOR=red]"outlook.application"[/COLOR]) outlook = [COLOR=blue]new[/COLOR] COM (#outlookapplication); Цитата:
dll _mapiDLL = new DLL('mapi32.dll');
|
|
|
|
|
#6 |
|
MCT
|
Это еще один способ отправки почты, их на самом деле превеликое множество.
|
|
|
|
|
#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); |
|
|
|
|
#8 |
|
SAP
|
тут все предлагают что писать, а зачем писать не проще ли взять готовое.
смотрите следующие объекты: \Classes\SysEmailBatch данный класс использует класс \Classes\SysMailer для отправки писем, текст писем настраивается в форме \Forms\SysEmailTable |
|
|
|
|
#9 |
|
MCT
|
|
|
|
|
|
#10 |
|
Участник
|
Господа, дело в том, что функционал отправки писем я реализовал. Для AX3 все работает на ура. Но вот при переносе на 4-кувозникли трудности, которые я описал в первому посте.
Мне необходимо разобраться, почему при попытки отправки почты с клиента - COM обьект не создается а происходит зависание на строчке кода отвечающей за его создание. |
|
|
|
|
#11 |
|
Участник
|
На данный момент, проблема решена следущюим образом:
outlook установлен и на сервере и на клиенте. Устанавил программу Outlook Security. Произвел первый запуск отправки письма из кода на сервере - появилось окошко с запросом действия - разрешить всегда. После этого все работает на ура. Но остался один вопрос! А можно ли сделать так что-бы не устанавливать на клиенте outlook? Или это невозможно? |
|
|
|
|
#12 |
|
Участник
|
Насколько я понимаю, проблема в том, что код отсылки письма работает там, где открыт портал, т.е. либо на клиенте, либо на сервере. Используйте для отправки писем класс-обертку, который будет всегда вызываться на сервере, - тогда надобность в Outlook'е на клиенте отпадет.
|
|
|
| Теги |
| ax4.0 |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Проблема с импортом из Excel через COM | 18 | |||
| Проблема доступа через COM Connector | 0 | |||
| Проблема с запуском business connector'a через удал доступ | 1 | |||
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|