![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка ошибок при отправлении E-Mail [D7, XP]
Juri © (2006-09-10 18:31:00)Доброго времени суток! Вот имею такой код для отправки почты:
procedure TForm1.Button2Click(Sender: TObject);
var idtTextPart: TIdText;
begin
Button2.Enabled:=False;
Memo3.Lines.Add(DateToStr(DATE)+' '+TimeToStr(TIME)+'->Подключение...');
IdSMTP1.Host := Edit2.Text;
IdSMTP1.Username := Edit6.Text;
IdSMTP1.Password := Edit7.Text;
IdMessage1.Clear;
IdMessage1.ContentType := 'Multipart/Alternative';
idtTextPart := TIdText.Create(IdMessage1.MessageParts, nil);
idtTextPart.ContentType := 'text/plain';
idtTextPart:= TIdText.Create(IdMessage1.MessageParts, nil);
idtTextPart.ContentType := 'text/html';
idtTextPart.Body.Text:=Memo1.Text;
IdMessage1.CharSet := 'windows-1251';
IdMessage1.Subject := Edit5.Text;
IdMessage1.From.Address := Edit9.Text;
IdMessage1.From.Name := Edit3.Text;
with IdMessage1.Recipients.Add do begin
Address := Edit4.Text;
end;
Memo3.Lines.Add(DateToStr(DATE)+' '+TimeToStr(TIME)+'->Соединение с почтовым сервером...');
IdSMTP1.Connect;
if IdSMTP1.Connected then begin
Memo3.Lines.Add(DateToStr(DATE)+' '+TimeToStr(TIME)+'->Соединение завершено, отправка сообщения...');
IdSMTP1.Send(idMessage1);
Memo3.Lines.Add(DateToStr(DATE)+' '+TimeToStr(TIME)+'->Сообщение от '+Edit9.Text+' для '+Edit4.Text+' успешно отправлено!');
k:=k+1;
IdSMTP1.Disconnect;
end;
Button2.Enabled:=True;
Label10.Caption:='Отправлено: '+IntToStr(k)+' сообщений';
end;
всё отлично работает, НО нет обработки ошибок: "лимит отправки сообщений", "отправка на несуществующий адресс", и наверняка ещё много каких которые мне ещё не выскакивали... как обработать эти ошибки?
Германн (2006-09-11 01:19:00) [1]И кстати, насчёт хелпа. Зря что-ли АП старался! По Indy читай его перевод книги по Инди. Найдёшь тут: http://www.podgoretsky.com/ddp.html
Германн (2006-09-11 01:07:00) [2]
> пробую сам разобраться... вот выдаёт ошибку что не объявлено
>
> > EIdProtocolReplyError
>
> где и как объявить в хелпе ненашёл этого...
>
uses IDException
На хелп надейся, а сам не плошай! Поиск файлов с нужным текстом никто ещё не отменял. И каталог Source во всех Дельфях есть.
Juri (2006-09-11 00:43:00) [3]пробую сам разобраться... вот выдаёт ошибку что не объявлено
> EIdProtocolReplyError
где и как объявить в хелпе ненашёл этого...
Juri (2006-09-11 00:15:00) [4]Извените конешно но я новичёк в этом и непойму как с подобным кодом работать что то никак
try
...
Send
...
except
on e:EIdProtocolReplyError do
begin
case e.ReplyErrorCode do
// анализ ошибки протокола
end;
end
on e:Exception do
begin
ShowMessage(e.Message)
end
end
Dmitrij_K (2006-09-10 23:52:00) [5]
> сделай пример возьми мой код вставь в него обработку
Может быть тебе дать ключ от квартиры, где деньги лежат? (c) 12 стульев
Anatoly Podgoretsky (2006-09-10 22:34:00) [6]А может это ты сделаешь?
Juri (2006-09-10 21:19:00) [7]вобщем чтоб я 100% всё понялсделай пример возьми мой код вставь в него обработку... как это должно быть.
Dmitrij_K (2006-09-10 19:29:00) [8]
> тут можно попобробней?
Что именно не понятно?
Juri (2006-09-10 19:17:00) [9]
> case e.ReplyErrorCode do
> // анализ ошибки протокола
> end;
тут можно попобробней?
Dmitrij_K (2006-09-10 19:02:00) [10]Примерно так
try
...
Send
...
except
on e:EIdProtocolReplyError do
begin
case e.ReplyErrorCode do
// анализ ошибки протокола
end;
end
on e:Exception do
begin
ShowMessage(e.Message)
end
end