Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Mapi 


Dup   (2002-01-23 15:50) [0]

Почему Mapi не работает на компьютере где нет Delphi
может библиотеки какие нужны?



Digitman   (2002-01-24 14:14) [1]

На основании чего ты утверждаешь о неработоспособности MAPI ?



Dup   (2002-01-24 14:54) [2]

простая программа считывает параметры из файла и открывает
Outlook с заполненными полями. Но на другом компьютере Outlook
не запускается



Digitman   (2002-01-24 15:26) [3]

так первое, что приходит на ум (если у тебя взаимодействие с Outlook должно осуществляться как с OLE/Com-сервером) - а зарегистрирован ли корректно сей сервер на проблемной машине ?
И , если не запускается, какова строчка запуска ? Каковы параметры запуска ? Каково сообщение об ошибке ?



Dup   (2002-01-24 15:40) [4]

как узнать про регистрацию?
запускается без параметров
сообщений об ошибке не выводится вообще
ничего не происходит



Digitman   (2002-01-24 16:42) [5]

ок. приводи фрагменты кода.
на разных языках говорим с тобой.
мне ничего пока не понятно. тем более - о связи проблемы c загрузкой/выполнением Outlook и MAPI



nikkie   (2002-01-24 16:44) [6]

насколько мне помнится, для работы Mapi нужен именно Outlook (не Express) и ничего тут не поделаешь.



Dup   (2002-01-24 16:48) [7]


function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean;
var MapiMessage: TMapiMessage;
MapiFileDesc: TMapiFileDesc;
MapiRecipDesc: TMapiRecipDesc;
i: integer;
s: string;
begin
with MapiRecipDesc do
begin
ulReserved:= 0;
ulRecipClass:= MAPI_TO;
lpszName:= PChar(RecipName);
ulEIDSize:= 0;
lpEntryID:= nil;
end;
with MapiFileDesc do
begin
ulReserved:= 0;
flFlags:= 0;
nPosition:= 0;
lpszPathName:= PChar(Attachment);
lpszFileName:= nil;
lpFileType:= nil;
end;
with MapiMessage do
begin
ulReserved := 0;
lpszSubject := nil;
lpszNoteText := PChar(Subject);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 1;
lpRecips := @MapiRecipDesc;
if length(Attachment) > 0 then
begin
nFileCount:= 1;
lpFiles := @MapiFileDesc;
end else
begin
nFileCount:= 0;
lpFiles:= nil;
end;
end;
result:=MapiSendMail(0, 0, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) = SUCCESS_SUCCESS;
end;

begin
assign(f,"param.txt");
reset(f);
readln(f,s1);
readln(f,s2);
readln(f,s3);
sendemail(s1,"",s2,s3);
end.


только мне кажется код здесь ни при чем



Digitman   (2002-01-24 18:31) [8]

>nikkie
Я, честно сказать, не занимался этим, но, если речь автора идет о MAPI-спецификации как таковой (как она декларирована в MSDN), то скажи тогда, где хоть одно упоминание есть в Win32 API Help об каком-то там Outlook ?

>Dup
Где в твоем фрагменте хоть какое-то упоминание о явном использовании Outlook ? Где и кем сказано, что MapiSendMail() как-то связан с Outlook ? Где анализ результата выполнения вызова MapiSendMail() ?



nikkie   (2002-01-25 09:36) [9]

я тоже не занимался, просто осталось в голове какое-то воспоминание о прочитанных обсуждениях...

ты прав, MAPI - просто спецификация, но для того, чтобы на самом деле послать почту, необходим почтовый клиент, эту MAPI реализующий. так дело видимо в том, что Outlook реализует MAPI, а Outlook Express - нет.

в подтверждение этому нашел вот такую ссылочку
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257824



Digitman   (2002-01-25 13:47) [10]

Здесь дело не в Outlook или OE. Дело в наличии в системе (и соответственно - регистрационных записей в реестре) фабрики класса, реализующего интерфейс IMAPISession (имеющий предопределенный GUID). Таковой может быть и Outlook и любые другие серверы. Конечно же, если в системе нет ни одного сервера, фабрика которого способна создать объект с таким интерфейсом, вызовы MAPI выполняться не будут. И это очень легко проверить, проанализировав результат того же авторского MapiSendMail(), он, скорее всего = MAPI_E_FAILURE, потому что ни один MAPI-сервер в системе не установлен и не зарегистрирован.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.036 c
14-22804          Song                  2002-02-26 17:51  2002.04.08  
Скажите за что зацепиться. Нужно узнать выключен ли монитор.


14-22811          Miwa                  2002-02-26 18:29  2002.04.08  
undelete/unerase


3-22563           dim-                  2002-03-15 01:48  2002.04.08  
Клиент-банк


1-22744           Yuraz                 2002-03-27 08:20  2002.04.08  
Мастера, помогите с написанием функции удаления лишних пробелов в строке,


1-22621           Dimedrol              2002-03-27 17:37  2002.04.08  
TreeView - каждый TNode со своим хинтом...