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

Вниз

Обработка ошибок при отправлении E-Mail   Найти похожие ветки 

 
Juri   (2006-09-10 18:31) [0]

Доброго времени суток! Вот имею такой код для отправки почты:

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;

всё отлично работает, НО нет обработки ошибок: "лимит отправки сообщений", "отправка на несуществующий адресс", и наверняка ещё много каких которые мне ещё не выскакивали... как обработать эти ошибки?


 
Dmitrij_K   (2006-09-10 19:02) [1]

Примерно так
try
...
Send
...
except
 on e:EIdProtocolReplyError do
 begin
   case e.ReplyErrorCode do
     // анализ ошибки протокола  
   end;
 end
 on e:Exception do
 begin
   ShowMessage(e.Message)
 end
end


 
Juri   (2006-09-10 19:17) [2]


> case e.ReplyErrorCode do
>      // анализ ошибки протокола  
>    end;

тут можно попобробней?


 
Dmitrij_K   (2006-09-10 19:29) [3]


> тут можно попобробней?

Что именно не понятно?


 
Juri   (2006-09-10 21:19) [4]

вобщем чтоб я 100% всё понялсделай пример возьми мой код вставь в него обработку... как это должно быть.


 
Anatoly Podgoretsky ©   (2006-09-10 22:34) [5]

А может это ты сделаешь?


 
Dmitrij_K   (2006-09-10 23:52) [6]


> сделай пример возьми мой код вставь в него обработку

Может быть тебе дать ключ от квартиры, где деньги лежат? (c) 12 стульев


 
Juri   (2006-09-11 00:15) [7]

Извените конешно но я новичёк в этом и непойму как с подобным кодом работать что то никак
try
...
Send
...
except
on e:EIdProtocolReplyError do
begin
  case e.ReplyErrorCode do
    // анализ ошибки протокола  
  end;
end
on e:Exception do
begin
  ShowMessage(e.Message)
end
end


 
Juri   (2006-09-11 00:43) [8]

пробую сам разобраться... вот выдаёт ошибку что не объявлено

> EIdProtocolReplyError

где и как объявить в хелпе ненашёл этого...


 
Германн ©   (2006-09-11 01:07) [9]


> пробую сам разобраться... вот выдаёт ошибку что не объявлено
>
> > EIdProtocolReplyError
>
> где и как объявить в хелпе ненашёл этого...
>

uses IDException
На хелп надейся, а сам не плошай! Поиск файлов с нужным текстом никто ещё не отменял. И каталог Source во всех Дельфях есть.


 
Германн ©   (2006-09-11 01:19) [10]

И кстати, насчёт хелпа. Зря что-ли АП старался! По Indy читай его перевод книги по Инди. Найдёшь тут: http://www.podgoretsky.com/ddp.html



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

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

Наверх




Память: 0.49 MB
Время: 0.035 c
4-1148385752
alexaken
2006-05-23 16:02
2006.10.01
Подлождать пока форма закроется или спрячется


2-1158241751
megasecure
2006-09-14 17:49
2006.10.01
Индексы в MSSQL


2-1157976752
pavel_guzhanov
2006-09-11 16:12
2006.10.01
Заполнение двумерного массива


6-1139698111
msdn11
2006-02-12 01:48
2006.10.01
AT+CMGS sms не уходит


2-1158288695
Timur
2006-09-15 06:51
2006.10.01
Проверка на корректность документа Word.