![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Chaser: Помогите! Не работает отправка е-mail на Delphi [D7, WinXP]
Chaser © (2004-11-25 12:49:00)Добрый день!
Вопрос по отправке почты, не работает
Код:
procedure TForm3.Button1Click(Sender: TObject);
var
i: integer;
begin
idMessage1.Recipients.EMailAddresses:=Edit1.Text; // получатель
idMessage1.From.Text:=Edit2.Text; // отправитель
idMessage1.From.Address:=Edit2.Text; // адрес отправителя
idMessage1.Subject:=Edit3.Text; // тема
for i:=0 to Memo1.Lines.Count-1 do // текст сообщения
idMessage1.Body.Text:=Memo1.Text;
//
idSmtp1.AuthenticationType:=atNone;
idSmtp1.Host:='smtp.mail.ru';
idSmtp1.Port:=25;
IdSMTP1.Username:='*******';
IdSMTP1.Password:='*******';
IdSMTP1.Connect(1000);
if IdSMTP1.Connected
then
begin
IdSMTP1.Send(idMessage1);
ShowMessage('Письмо отправлено!');
end
else ShowMessage('Письмо не отправлено!');
idSmtp1.Disconnect;
end;
При отправке выдается ошибка: "failed to run cheks, message rejected".
Подскажите плиз в чем проблема.
OneFragLeft (2004-11-28 01:28:00) [1]Постучи в аську: 303069836
Serega (2004-11-28 01:28:00) [2]da....
idMessage2 na forme, no sasdajotsa v Procedure....:)
procedure SendMyMail();
var
IdMessage2: TIdMessage;
begin
idmessage2 := TiDMessage.Create(nil);
OneFragLeft (2004-11-28 01:25:00) [3]IDMessage - на форме?
Serega (2004-11-28 01:22:00) [4]strochku v idmessage.pas sakomentiroval
**************idmessage.pas**********************************
Values['X-Priority'] := IntToStr(Ord(Priority) + 1); {do not localize}
// Values['X-Library'] := gsIdProductName + ' ' + gsIdVersion ; {do not localize}
****************************************************************
v object-ispector dla idsmtp stoit:
Authetification Type : atNone
Host : smtp.mail.ru
Port : 25
ReadTimeout : 60000
Pri Opravke pochti vidaet exception:
form1.IdSMTP1.Connect();
try
form1.IdSMTP1.Send(idmessage2);
except
on E : EidException do showmessage('Scheise beim Senden der Email an den Server' + E.Message + E.ClassName);
end; // try
form1.IdSMTP1.Disconnect;
Nesnaju s chem eto svasano.....
Project rebuilt delal....
OneFragLeft (2004-11-28 01:15:00) [5]Каким образом?
Serega (2004-11-28 01:14:00) [6]stranno, moi Delphi(7) soprativlaetsa.....
OneFragLeft (2004-11-28 01:03:00) [7]Нет, так работает.
Только строчку надо закомментироватьValues['X-Library'] := gsIdProductName + ' ' + gsIdVersion ;
Которая находиться в IdMessage.pas
Serega (2004-11-28 01:01:00) [8]> OneFragLeft © (28.11.04 00:58) [40]
na idsmtp krome timeout, port, i host, drugie properitis ne stavatsa......!?
OneFragLeft (2004-11-28 00:58:00) [9]>Serega (28.11.04 0:43) [37]
procedure Indy_SendMail(const sSubj,sTo,sFromAddr,sReplyTo,sAttach:string;LBody:TStrings);
var
FidMess:TidMessage;
Fid_SMTP:TidSMTP;
begin
try
Fid_SMTP:=TIdSMTP.Create(Application.MainForm);
FidMess:=TIdMessage.Create(Fid_SMTP);
except
if Fid_SMTP<>nil then FreeAndNil(Fid_SMTP);
end;
with FidMess do
begin
Subject:='Тест';
From.Text:=sFromAddr;
Recipients.EMailAddresses:=sTo;
NoEncode:=True;
if LBody<>nil then Body.Text:=pchar(LBody.Text);
if sReplyTo<>'' then ReplyTo.EMailAddresses:=sReplyTo;
if FileExists(sAttach) then TIdAttachment.Create(MessageParts,sAttach);
end;
with Fid_SMTP do
begin
ReadTimeout:=60000;
Port:=25;
Host:='smtp.mail.ru';
if not Connected then
try
Connect;
Send(FidMess);
finally
if Connected then Disconnect;
FreeAndNil(FidMess);
FreeAndNil(Fid_SMTP);
end;
end;
end;
Indy_SendMail('', 'MYLO@mail.ru', 'SHILO@mail.ru', 'SHILO@mail.ru', '',Form1.Memo1.Lines);
OneFragLeft (2004-11-28 00:55:00) [10]Странно, на обычный ящик приходит нормально, а на телефон - коряво. Была, допустим в слове буква А, получается Ю. Чё за ботва?
Alexander Panov (2004-11-28 00:44:00) [11]>Verg © (27.11.04 10:07) [30]
Так покажи такой же протокол из под 9-ки. Сравним - в чем косяк.
Только в понедельник - на работе.
Serega (2004-11-28 00:43:00) [12]Sater v idmessage.pas strochku:
Values['X-Library'] := gsIdProductName + ' ' + gsIdVersion ;
Seravno rugaetsa.....
moschet ktnonibud pamestit primer s kodom, vse properitis ot idsmtp....
idsmtp.Authentication stoit na atnone......!?
OneFragLeft (2004-11-28 00:13:00) [13]OneFragLeft © (27.11.04 15:32) [32]
Работать-то работает, только вот с русским проблема. Приходит совсем не то, что посылаю. Как лечить, доктор?
Verg (2004-11-27 21:56:00) [14]Для начала...
http://www.faqs.org/rfcs/rfc821.html
OneFragLeft (2004-11-27 19:16:00) [15]Verg © (26.11.04 22:21) [12]
Как послать сообщение с TELNET?
XGarik (2004-11-27 15:39:00) [16]Зачем ты написал idSmtp1.AuthenticationType:=atNone;
А затем вбил
IdSMTP1.Username:='*******';
IdSMTP1.Password:='*******';
SMTP сервак на MAIL.RU не требует авторизаци...
Просто грохни эти две строчки (только не вбивай мое мыло в bad-list...!!!)
OneFragLeft (2004-11-27 15:32:00) [17]Ух, сколько запарки-то было. Всем большое спасибо. Всё работает.
Неизвестный (2004-11-27 11:02:00) [18]Увидел знакомую ошибку решил добавить как я нашел выход из этой ситуации (на D7, т.е. Indy9).
Моя прога отправляла письма на mail.ru, работала без проблем, но через пару недель стала выдавать ошибку:
failed to run checks, message rejected
Я долго искал в чем причина и как-то закоментировал строчку
Values['X-Library'] := gsIdProductName + ' ' + gsIdVersion ;
Которая находиться в IdMessage.pas
И у меня все стало нормально попрежнему отправляться.
Может быть сервер не понимает строчку вида в письме: "X-Library: Indy 9.00.10"...думает, что спам ну или космические корабли....но этот глюк прошел.
Кстати у mail.ru для отправки писем пароль не нужен.
Verg (2004-11-27 10:07:00) [19]Так покажи такой же протокол из под 9-ки. Сравним - в чем косяк.
Alexander Panov (2004-11-27 01:07:00) [20]>Verg © (26.11.04 23:30) [28]
Не успел с работы отписать, пишу сейчас.
После установки Indy9 тот код заработал нормально, похоже, что глюк в Indy8.