Wysylka pliku na maila po pewnym czasie.

0

WItam,
mam pewien problem z wysylka pliku na maila z poziomu Delphi (indy z nowych delphi).

Chodzi o to że generuję plik ddajmy na to XML - jego czas zapisu na dysk to od sekundy do 5 sekund około.
Po wygenerowaniu wysyłam maila z uzyciem TIdSMTP z pakietu indy.
Działa to dobrze, ale czasem mail z treścia wychodzi, ale bez załącznika (owego XMLa). Tak jakby jest wysylany zanim zapisze się do pliku.
Jak sprawić żeby program zaczekał na zapisanie pliku i dopiero potem wysłał go?

0

Wysłanie e-maila zanim plik zostanie wygenerowany było by możliwe jedynie jeśli plik ten byłby generowany w wątku pobocznym; Czy mechanizm generowania pliku XML działa wielowątkowo?

Jeśli cały Twój kod działa w ramach jednego wątku (generujący plik i wysyłający wiadomość) to według mnie problem istnieje w zupełnie innym miejscu, niż zakładasz.

0

Podejrzewałem to samo, co furious programming. A dokładnie podejrzewam system operacyjny i jego operacje odczytu/zapisu w tle. Nie wiem, czym generujesz ten XML, ale może pomoże Ci, że załącznik w Indy ma LoadFromStream.

0

Plik generuje obiekt COM aplikacji zewnetrznej którą wywołuję z mojego kodu, czyli to ona inicjuje zapis. jak mniemam to jest istotna infirmacja, której nie podałem.
W takim wypadku jakoby zapis pliku jest w innym watku niz moj kod spod buttona.

0

to sprawdzaj czy plik już jest czy jeszcze nie - co za problem?

0

Jeżeli aplikacja zewnętrzna po wygenerowaniu pliku kończy działanie to można poczekać na jej zamknięcie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1