Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизВиснет приложение при выводе окна Создание сообщения эл.почты Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c