Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Виснет приложение при выводе окна Создание сообщения эл.почты   Найти похожие ветки 

 
bav9 ©   (2005-12-15 13:37) [0]

При использовании следующей процедуры, если пытаюсь показать окно создаваемого сообщения на экране (pokaz:=true), окно Сообщения появляется, но приложение зависает на команде MM.Send(pokaz); и окошко Сообщения тоже ни на что не реагирует. Что я делаю не так ?..

procedure tform1.SendMail(Subject, Body, RecvAddress : string; Attachs : array of string; pokaz:boolean);
var
 MM, MS : Variant;
 i : integer;
begin
 MS := CreateOleObject("MSMAPI.MAPISession");
 try
   MM := CreateOleObject("MSMAPI.MAPIMessages");
   try
     MS.DownLoadMail := False;
     MS.NewSession := False;
     MS.LogonUI := True;
     MS.SignOn;
     MM.SessionID := MS.SessionID;
     MM.Compose;
     MM.RecipIndex := 0;
     MM.RecipAddress := RecvAddress;
     MM.MsgSubject := Subject;
     MM.MsgNoteText := Body;
     for i := Low(Attachs) to High(Attachs) do
     begin
       MM.AttachmentIndex := i;
       MM.AttachmentPathName := Attachs[i];
     end;

     MM.Send(pokaz);   //true - показать окно созданного Сообщения, false - отправить письмо сразу.
     MS.SignOff;
   finally
     VarClear(MS);
   end;
 finally
   VarClear(MM);
 end; //}//
end;


 
umbra ©   (2005-12-15 13:43) [1]

а как Вы вызываете этот метод?


 
bav9 ©   (2005-12-15 14:05) [2]

Так и вызываю :
SendMail(s4, s2, s3, sss, p1);

где
s4 - string - тема сообщения
s2 - string - текст самого сообщения
s3 - string - адрес на который надо отправить сообщение
sss - array of strinf - массив с полными путями и именами к файлам для вложения (типа ["C:\tmp\qq1.txt", "C:\tmp\qq2.txt"]    )
p1 - boolean - если =true - сразу не отправлять, а предварительно показать созданное сообщение на экране
=false - не показывать сообщение, а сразу отправлять.

Если поставить =false, то сообщение нормально появляется в папке Исходящие Outlook Express и уходит.
НО ! Если поставить =true - на экране ПОЯВЛЯЕТСЯ окно созданного сообщения, все поля у него ПРАВИЛЬНО заполнены, файлы - вложены.. и все.. приложение и само окно ни на что не реагируют. А надо, чтобы окно появилось, и приложение продолжало свою работу, т.к. необходимо таких окон вывести сразу несколько, т.е. отправить несколько писем на разные адреса с разными вложенными файлами.


 
umbra ©   (2005-12-15 14:34) [3]

а связь с почтовым сервером есть?


 
bav9 ©   (2005-12-15 15:01) [4]

Есть. См. предыдущий ответ. Сообщения УХОДЯТ, но если только не выводить их на экран. Если же вывести - приложение виснет.. (Окно созданного сообщения - это стандартное окно Outlook Express (у меня стоит версия 6) которое выводится в Outlook-е если щелкнуть в нем кнопку Создать сообщение. Только у меня это окно вызывается из моей программы, заполняются все нужные поля и .. зависаем..


 
bav9 ©   (2005-12-15 15:48) [5]

Сталикивался ли кто..?


 
umbra ©   (2005-12-15 16:08) [6]

согласно документации, чтобы отправить сообщение надо вызвать Send с параметром true, а чтобы сохранить в аутбокс и не отправлять - с параметром false. Если сообщение уходит на сервер, то оно должно лежать не в папке Outbox, а в папке Sent (Отправленные). Так что проверте , есть ли связь с сервером



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
5-1120549619
Mutex
2005-07-05 11:46
2006.01.01
Найти название свойства для csSubComponent через OpenToolsAPI


14-1133727715
Глаз
2005-12-04 23:21
2006.01.01
Какой монитор лучший выбор на сегодня?


2-1134560170
sanich
2005-12-14 14:36
2006.01.01
Непонятная ошибка при работе с таблицей


14-1133949106
syte_ser78
2005-12-07 12:51
2006.01.01
тег форматированный текст


14-1134213595
Alexey31
2005-12-10 14:19
2006.01.01
программа которая отслеживает действия другой программы