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

Вниз

Как обойти ошибку ?   Найти похожие ветки 

 
Lizard   (2002-05-02 22:12) [0]

Помогите обойти ошибку.
Суть в следующем. Программа должна отправить письмо по почте (вроде простого мэйлера).
Все поля правильно заполнены, адреса отправителя и получателя существуют в
действительности, smtp-сервер указан верно (smtp.mail.ru), к письму могут быть приаттачены файлы и т.д. Но программа работает через раз, то все как положено отправляет, то
выходит сообщение об ошибке:

Project Program1.exe raised exception class ESockError with message
"10054:Connection reset by peer". Process stoped. Use Step or Run to continue.

Очень прошу просветить меня в чем же ошибка и, если можно, на примере.
И если она неизбежна, то прошу помочь мне создать какое-нибудь событие на появление ошибки, т.е. чтобы программа не висла.

Привожу часть программы:
NMSMTP1.Port:= 25;
NMSMTP1.UserID:="Predok";
NMSMTP1.Host:="smtp.mail.ru";
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:="abc@mail.ru";
NMSMTP1.PostMessage.FromName:="Lizard";
NMSMTP1.PostMessage.ToAddress.Add("klm@mail.ru");
NMSMTP1.PostMessage.Subject:="Subject";
NMSMTP1.PostMessage.LocalProgram:="The Bat!";
NMSMTP1.PostMessage.Attachments.Text:=Memo1.lines[k];
NMSMTP1.SendMail;
NMSMTP1.Disconnect;

Заранее благодарен всем кто отзовется.


 
Reals ©   (2002-05-03 10:06) [1]

Здравствуйте!
Вообще-то, насколько мне известно на своих ошибках, то SMTP должен указываться твоего провайдера, через которого ты выходишь в Инет, а не какого-то там другого далеко удаленного сервера например mail.ru.
Ну а чтобы обработать исключительную ситуацию то просто:
try
NMSMTP1.SendMail;
except
ShowMessage("Error!");
end;


С Уважением...


 
Reals ©   (2002-05-03 10:09) [2]

в догонку...
мне еще кажеться что там можно и так (точно не припомню):
if NMSMTP1.SendMail then ShowMessage("Sent")
else ShowMessage("Error!");


С Уважением...


 
Song ©   (2002-05-03 10:36) [3]

Вообще-то, насколько мне известно на своих ошибках, то SMTP должен указываться твоего провайдера, через которого ты выходишь в Инет, а не какого-то там другого далеко удаленного сервера например mail.ru.

Ерунда.

2Lizard (02.05.02 22:12)
Вы отправляете случайно не через сеть? (в смысле что модем подсоединён не напрямую к Вашему компу)


 
Севостьянов Игорь ©   (2002-05-07 12:00) [4]

У меня вот написан Mail Agent, который отсылает письма через указанный smtp сервер (smtp.yandex.ru) и все путем...

Вот кусок кода ...

type
TfrmEMailAgent = class(TForm)
edtInerval: TNumberEdit;
mmoStatus: TMemo;
emlSend: TNMSMTP;
edtFromName: TEdit;
edtFromAddress: TEdit;
edtSubject: TEdit;
mmoBody: TMemo;
edtToAddress: TEdit;
lblFrom: TLabel;
edtSMTPServer: TEdit;
cboUnit: TComboBox;
----------------------------------
function TfrmEMailAgent.SendLetter: Boolean;
begin
Screen.Cursor := crHourGlass;
Result := False;
with emlSend do
begin
ClearParameters;
Host := Trim(edtSMTPServer.Text);
with PostMessage do
begin
Subject := Trim(edtSubject.Text);
FromName := Trim(edtFromName.Text);
FromAddress := Trim(edtFromAddress.Text);
ReplyTo := FromAddress;
ToAddress.Clear;
ToAddress.CommaText := ReplaceStr(Trim(edtToAddress.Text), ";", ",");
//ToAddress.Add(Trim(edtToAddress.Text));
Body.Clear;
Body.AddStrings(mmoBody.Lines);
end;
WriteStatus("Ожидайте... Отправка письма");

try
if not Connected then Connect;
if Connected then
begin
SendMail;
Result := True;
WriteStatus("Письмо отправлено");
end
else
begin
WriteStatus("Ошибка: нет соединения с сервером");
Screen.Cursor := crDefault;
Exit;
end;
except on E: Exception do
begin
WriteStatus("Письмо не отправлено");
ShowErrorMessage(Self, E);
end;
end;
// if Connected then Disconnect;
end;
Screen.Cursor := crDefault;
end;
----------------------------------

object emlSend: TNMSMTP
Port = 25
ReportLevel = 0
EncodeType = uuMime
ClearParams = True
SubType = mtPlain
Charset = "x-cp1251"
end


 
Новохатский А.Д.   (2002-05-07 15:29) [5]

Я вот столкнулся с тем, что у меня "карябузи" вместо русских букв идут в полях From, To, Subject.
Сервер мой почтовый - MS Exchange. Кодировка на нем стоит KOI8-R. На клиенте (MS Outlook) - тоже KOI8-R.
Сообщение приходит в такм виде:

"В сообщении используется набор символов, не поддерживаемый службой Internet Mail. Для просмотра исходного текста откройте вложенное сообщение"...

проперти emlSend: TNMSMTP
Charset ставлю windwes-1251, так как больше ничего не проходит. В этом случает текст (body) приходит нормальным. Но вот что с вышенаписанными полями сделать? Может клуджи какие-то нужно еще вставлять?



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
4-47905
Dmk
2002-05-13 22:06
2002.07.15
Как очистить оперативную память в Win9x?


7-47842
Lmatveev
2002-04-23 22:01
2002.07.15
---|Ветка была без названия|---


3-47116
-Евгений-
2002-06-22 09:01
2002.07.15
Как при выборке данных из БД Oracle пронумеровать


1-47487
nimble
2002-07-04 07:20
2002.07.15
Dynamic Array


1-47260
James007
2002-06-23 16:36
2002.07.15
Сохранение настроек формы и всех компонентов в файл