Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
14-1133895872
Дмитрий_05
2005-12-06 22:04
2006.01.01
Подключить два компъютера к интернету


2-1134633543
vitaliy14
2005-12-15 10:59
2006.01.01
Фильтрация изображения


2-1134633581
Tomkat
2005-12-15 10:59
2006.01.01
замена символа на лету


4-1130761542
s_t_d
2005-10-31 15:25
2006.01.01
Печать данных


2-1134575728
fast2
2005-12-14 18:55
2006.01.01
Подскажите, в чем ошибка?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский