Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизОбработка ошибок при отправлении 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c