Показать сообщение отдельно
  #9  
Старый 21.03.2009, 12:46
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

да на много )) я новичек в этом, попробую Вашим способом, но почему же у меня работало а на след день уже не работает, какие могут быть причины?


да и ваш код нужно писать после

Код:
 IdSMTP1.Host:='smtp.mail.ru'; // сервер исходящей почты (SMTP)
   IdSMTP1.Port:=25;    // порт SMTP сервера
   IdSMTP1.Username:='test@mail.ru';  // ваш логин
   IdSMTP1.Password:='test';     // ваш пароль
   IdSMTP1.Authenticate;
       with IdMessage1 do
               begin
               Body.Assign(Memo1.Lines);    // текст письма
               From.Text := 'test@mail.ru'; //  ваш e-mail адрес
               Recipients.EMailAddresses := 'test@list.ru';     // адрес получателя
               Subject := 'test';  // тема сообщения
               end;

//Ваш код
TryCount := 0; //Организуем цикл с нужным количеством попыток отправки в моем случае 3
    repeat
     try
      if not SMTP.Connected then SMTP.Connect; // Проверяем имеющееся подключение и если его нет подключаем
      SMTP.Send(Mail); // Отсылаем сообщение
      Mail.Clear; // В новой версии библиотек TIdMessage оформлено как отдельный контрол. У меня Mail: TIdMessage
      SMTP.Disconnect; // Отключаем соединение по ненадобности.
      Break; // поскольку все прошло удачно, выходим из цикла
     except // неудача соединения
      LogMessage('Ошибка подключения к SMTP-серверу. Повтор через 5 сек.', mtError); //Это моя процедура для регистрации событий в журнале
      StartTime := GetTickCount;  //Организуем цикл ожидания
      repeat
       Application.ProcessMessages; // Что-бы приложение не "замерзло"  в процессе ожидания
      until GetTickCount - StartTime > 5 * OneSec; // Собственно ждем 5 секунд
     end;
     Inc(TryCount); 
    until TryCount = 3; //Если количество попыток отправки больше 3 прекращаем попытки.


Так правильно будет?
Ответить с цитированием