Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
14-47707
Windeus
2002-06-18 00:30
2002.07.15
RXLibrary


1-47422
Новенький в Делфи
2002-07-03 03:11
2002.07.15
как очистить карзину?


1-47357
nester
2002-06-30 18:39
2002.07.15
А как создать новую форму, чтобы она отобразилась в панели задач?


1-47581
kolobok11
2002-06-26 16:46
2002.07.15
Функции Win API > EnterCriticalSection, LeaveCriticalSection ?


3-47100
shulc
2002-06-20 19:13
2002.07.15
Not enough storage is available to process this command





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский