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

Вниз

Не отправляется почта из сервиса   Найти похожие ветки 

 
Tomkat   (2006-01-17 10:42) [0]

Hi, ALL! Есть проблема - на событие таймера в системной СЛУЖБЕ повешено две процедуры - архивация файлов и отправке по почте. Архивация проходит на ура, а отправка нет , хотя из ПРИЛОЖЕНИЯ с формой и таймером все ОК !
с чего так ? такое впечатление, что в процедуру отправки почты просто не входят ... компоненты все теже Indy.
код


procedure TService.Timer(Sender: TObject);
begin
     ZipSprv; //работает
     SendMail; //не работает
end;

procedure TService.SendMail;
begin
////////
 Message1.Clear;
 Message1.From.Address:="user1@work.com";
 Message1.From.Name:="User1";
 Message1.Subject:="Tema ";
 Message1.BccList.EMailAddresses:="user2@work.com";
 Message1.Body.Append("Body");
 TIdAttachment.Create(Message1.MessageParts,"sprv.zip");

 SMTP2.Connect;
 SMTP2.Send(Message1);
 SMTP2.Disconnect;

end;



 
Digitman ©   (2006-01-17 11:06) [1]


> такое впечатление, что в процедуру отправки почты просто
> не входят


Такого не может быть.
И отладчик подтвердит это. На то он, отладчик, и существует.

Наиболее вероятным м.б. факт возникновения искл.ситуации при исполнении некоего вызова в теле метода TService.SendMail.


 
Tomkat   (2006-01-17 11:12) [2]

еще проблемка в том , что сервисы не отлаживаются .... во всяком случае у меня :-(
а на счет ошибки в теле TService.SendMail - в приложении работает все на ура . Странно это .


 
Digitman ©   (2006-01-17 11:17) [3]


> проблемка в том , что сервисы не отлаживаются


Глупости.
Замечательно отлаживаются они, средствами все того же встроенного отладчика. Есть, конечно, некие "тонкости" в связи с этим, но все они понимаемы и вовсе не сложны .. Инф-ция по встроенной отладке сервисов имеется в теме "Debugging service applications" в станд.стравке Делфи.


> в приложении работает все на ура


Да мало ли что там еще "работает") .. Севисы все-таки имеют некие отличия по отношению к обычным приложениям .. На то и отладчик, чтобы утвердиться в понимании этих отличий ..


 
Rouse_ ©   (2006-01-17 11:36) [4]

На всякий случай - переключи сервис в интерактивный режим, есть одно предположение :)


 
Tomkat   (2006-01-17 16:01) [5]


> На всякий случай - переключи сервис в интерактивный режим,
>  есть одно предположение

давно переключен
он дажде маяк на входе в процедуру не показывает

procedure TService.SendMail;
begin
ShowMessage("In Mail");
Message1.Clear;
Message1.From.Address
......


 
Slym ©   (2006-01-17 16:23) [6]

Дарагой... какой в сервисе таймер?
делай так:
1. на ServiceStart Создаем доп поток
2. В нем Event:TEvent;
3. в потоке
while not Terminated do
begin
 ZipSprv;
 SendMail;
 Event.WaitFor(переодичность работы)
end;
4. На Stop
 Thread.Terminate;
 Event.PulseEvent;


 
Reindeer Moss Eater ©   (2006-01-17 16:37) [7]

Скорее всего проблема связана с тем, что текущий каталог процесса сервиса не совпадает с папкой в которой лежит сам сервис.

То есть к примеру такой код может обломаться, так как использует относительный путь.
TIdAttachment.Create(Message1.MessageParts,"sprv.zip");


 
Slym ©   (2006-01-17 16:50) [8]

Tomkat   (17.01.06 11:12) [2]
Я отлаживаю так:
1. Ставлю OnStart Sleep(5000);
2. Стандартно запускаю сервис.
3. в делльфи Run>Attach to process>Show system process> выбираю экзешник...
это надо успеть сделать за 5 сек



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

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

Наверх




Память: 0.49 MB
Время: 0.04 c
1-1143488106
kutuzov47
2006-03-27 23:35
2006.05.07
Программно назначить объекту ShortCut


15-1144736884
Карелин Артем
2006-04-11 10:28
2006.05.07
Пирамида и знак над ней на 1 USD. Из какой части света взято?


15-1144826480
syte_ser78
2006-04-12 11:21
2006.05.07
Ваши юношеские заблуждения (компьютерные)


3-1142013327
Megabyte
2006-03-10 20:55
2006.05.07
Не хочет коннектиться в с включенным LoginPrompt


15-1144918326
_!
2006-04-13 12:52
2006.05.07
Контроль доступа к файлам и папкам