да на много )) я новичек в этом, попробую Вашим способом, но почему же у меня работало а на след день уже не работает, какие могут быть причины?
да и ваш код нужно писать после
Код:
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 прекращаем попытки.
Так правильно будет?