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

Вниз

Chaser: Помогите! Не работает отправка е-mail на Delphi   Найти похожие ветки 

 
Chaser ©   (2004-11-25 12:49) [0]

Добрый день!

Вопрос по отправке почты, не работает
Код:

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".

Подскажите плиз в чем проблема.


 
seeker   (2004-11-25 15:14) [1]

for i:=0 to Memo1.Lines.Count-1 do // текст сообщения
idMessage1.Body.Text:=Memo1.Text;
а зачем сдесь цикл?


 
Alex_Petr ©   (2004-11-25 16:08) [2]

Я столкнулся с этой проблемой.
Сделай поиск на этом форуме по "failed to run cheks".
Только решения, лучше чем танец с бубном, пока нет.


 
Serega   (2004-11-25 19:53) [3]

Problemma "failed to run cheks" vosnikla paru mesazeva nasad, do etovo vse bilo "Puchkom"....!!!!
Stal sperva kosit na Autentifikazuju:
idSmtp1.AuthenticationType:=atLogin; - toest pri logine, rugaetsa na username i password(cheres WEb sahoschu - vse normalno)

Dumaju eto pogreschnost pratakola smtp(scheres pop idet bes problem) immeno na mail.ru.....!!!!

Scheise....!!!!


 
OneFragLeft ©   (2004-11-25 21:46) [4]

Значит через другие почтовые серверы можно посылать?


 
Verg ©   (2004-11-25 22:08) [5]


> IdSMTP1.Username:="*******";
> IdSMTP1.Password:="*******";



Какой Username, Какой Password?!
smtp.mail.ru НЕ требует никакой авторизации при отправке. И все прекрасно работает.
Вот при получении (pop3) - требует, конечно, иначе любой баклан мог бы читать вашу бесценную почту.

Ты лучше скажи - чему равно поле From у IdMesasage при отправке. Назови точно - что после @


 
Alexander Panov ©   (2004-11-26 12:37) [6]

Verg ©   (25.11.04 22:08) [5]
smtp.mail.ru НЕ требует никакой авторизации при отправке.


Ты ошибаешься. Проверь сам.


 
Verg ©   (2004-11-26 21:57) [7]

"Здравствуйте, andruk.

Вы писали 26 ноября 2004 г., 21:37:05:

amr> Verg"s mail without authorization via smtp.mail.ru

amr> Это я к "проверь сам".

Очень странно-)
Я вчера с полчаса бился, пытался пример из D6 для Indy заставить
сработать с mail.ru - ни в какую.

Если тебе несложно, привел бы пример в форуме?
-- "

Вот код. Чистый, взятый из последих "плачей Ярославны" на этом форуме:

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;
 if LBody<>nil then Body.Text:=LBody.Text;
 if sReplyTo<>"" then ReplyTo.EMailAddresses:=sReplyTo;
 if FileExists(sAttach) then TIdAttachment.Create(MessageParts,sAttach);
end;
with Fid_SMTP do
begin
 ReadTimeout:=60000;
 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;

procedure TForm2.Button1Click(Sender: TObject);
begin
 Indy_SendMail("Test", "panov@mail.ru", "andruk@mail.ru", "andruk@mail.ru", "", Memo1.Lines);
end;

Содержимое Memo1.Lines г-н Panov знает не хуже, чем я.


 
Alexander Panov ©   (2004-11-26 22:09) [8]

Verg ©   (26.11.04 21:57) [7]

Андрей, меня интересует вот эта строка
ReadTimeout:=60000;

В D6 в IdSMTP нет такого свойства, у тебя, наверное, компоненты Indy9 установлены?


 
Verg ©   (2004-11-26 22:12) [9]


> В D6 в IdSMTP нет такого свойства, у тебя, наверное, компоненты
> Indy9 установлены?


Это несерьезно. Конечно Indy9. А какие еще?

Indy 9 - Official supported release


 
OneFragLeft ©   (2004-11-26 22:18) [10]

Не посылает:(


 
Alexander Panov ©   (2004-11-26 22:19) [11]

Verg ©   (26.11.04 22:12) [9]
Это несерьезно. Конечно Indy9. А какие еще?


какие? Indy8, конечно, из комплекта с D6.
Возможно(скорее всего) поэтому у тебя и работает.

Но mail.ru для оправки требует авторизации - это точно.

Ваш электронный адрес (имя почтового ящика или e-mail address):   полное название почтового ящика, включающее значок "@" и домен (например, mailname@mail.ru, listname@list.ru, bkname@bk.ru, или inboxname@inbox.ru).

Сервер входящей почты (POP3-сервер):    POP.<домен>, где <домен> - домен Вашего почтового ящика (для почтового ящика mailname@mail.ru - pop.mail.ru, listname@list.ru - pop.list.ru, bkname@bk.ru - pop.bk.ru, inboxname@inbox.ru - pop.inbox.ru).

Сервер исходящей почты (SMTP-сервер): SMTP.<домен>, где <домен> - домен Вашего почтового ящика (для почтового ящика mailname@mail.ru - smtp.mail.ru, listname@list.ru - smtp.list.ru, bkname@bk.ru - smtp.bk.ru, inboxname@inbox.ru - smtp.inbox.ru).

Имя пользователя на POP-сервере: имя почтового ящика без значка "@" и названия домена (для почтового ящика mailname@mail.ru - mailname, listname@list.ru - listname, bkname@bk.ru - bkname, inboxname@inbox.ru - inboxname).

Пароль: Ваш пароль к почтовому ящику mailname@mail.ru, listname@list.ru, bkname@bk.ru, или inboxname@inbox.ru.

Порт: POP3 - 110, SMTP - 25 или 2525.

В настройках почтовой программы необходимо указать,  что сервер исходящей почты (или сервер SMTP) требует авторизации. При отправке писем через наш SMTP-сервер содержимое поля From: должно совпадать с именем почтового ящика, в котором была осуществлена SMTP-авторизация: если в настройках почтовой программы указан почтовый ящик mailname@mail.ru  ( listname@list.ru,  bkname@bk.ru или inboxname@inbox.ru ), то именно это имя почтового ящика должно указываться в поле From:.

Copyright © 1999-2004 MAIL.RU


 
Verg ©   (2004-11-26 22:21) [12]


> [11] Alexander Panov ©   (26.11.04 22:19)

Понимаешь, Саша, хочешь, я прямо телнетом на 25 порт сейчас зайду на smtp.mail.ru и руками (пальцами) отправлю тебе почту? Безо всякой авторизации?


 
Alexander Panov ©   (2004-11-26 22:24) [13]

Verg ©   (26.11.04 22:21) [12]
хм. сейчас попробую


 
Alexander Panov ©   (2004-11-26 22:29) [14]

Verg ©   (26.11.04 22:21) [12]
Действительно, и от тебя получил письмо, и от себя тоже...


 
Verg ©   (2004-11-26 22:32) [15]

Есчо раз настоятельно повторяю теперь уже свой вопрос:


> Ты лучше скажи - чему равно поле From у IdMesasage при отправке.
> Назови точно - что после @


 
OneFragLeft ©   (2004-11-26 22:33) [16]

Теперь пишет Incorrect Authentication data.
Насколько я понял, он говорит, что невозможна аутентификация. Хотя и пароль и имя пользователя указаны верно.


 
Alexander Panov ©   (2004-11-26 22:33) [17]

OneFragLeft ©   (26.11.04 22:33) [16]
Не надо имя и пароль...


 
OneFragLeft ©   (2004-11-26 22:37) [18]

Тогда пишет failed to run checks, message rejected.


 
Alexander Panov ©   (2004-11-26 22:40) [19]

Verg ©   (26.11.04 22:32) [15]

Похоже, что все-таки это глюк в Indy8... Хотя сомнительно...

Я тоже не могу отправить с использованием IdSMTP, а из телнета - пожалуйста...


 
OneFragLeft ©   (2004-11-26 22:41) [20]

Alexander Panov ©   (26.11.04 22:13) [18]
>Piter ©   (26.11.04 22:10) [17]

На mail.ru есть особенность какая-то, которую не уловил пока.
Для IdSmtp устанавливается имя и пароль.
Я неточен был в [1]

А это как понимать?


 
Verg ©   (2004-11-26 22:41) [21]

Все сдаюсь - достали вы своими "чудесами". Кто-нибудь решил, навреное работать через какой-нибудь там гребаный NAT, супер-пупер "прокси" или еще чего-нибудь. А может кто-то и просто "кнопки на клаве путает"...


 
OneFragLeft ©   (2004-11-26 22:43) [22]

А как узнать какая версия инди стоит? У меня Д7. Значит Инди9?


 
Alexander Panov ©   (2004-11-26 22:43) [23]

Verg ©   (26.11.04 22:41) [21]

хм.. а это мысль... про NAT


 
OneFragLeft ©   (2004-11-26 22:52) [24]

What is it NAT?


 
OneFragLeft ©   (2004-11-26 23:08) [25]

Через BAT отправляет.


 
Alexander Panov ©   (2004-11-26 23:17) [26]

Удалено модератором


 
Alexander Panov ©   (2004-11-26 23:19) [27]

Verg ©   (26.11.04 22:41) [21]

Вот протокол:

26.11.2004 23:20:02: Connected.
26.11.2004 23:20:02: Recv: 220 mail.ru ESMTP Fri, 26 Nov 2004 23:16:46 +0300<EOL>
26.11.2004 23:20:02: Sent: ehlo admin<EOL>
26.11.2004 23:20:02: Recv: 250-mx1.mail.ru Hello admin [81.211.98.100]<EOL>250-SIZE 10485760<EOL>250-8BITMIME<EOL>250-AUTH PLAIN LOGIN<EOL>250 PIPELINING<EOL>
26.11.2004 23:20:02: Sent: Rset<EOL>
26.11.2004 23:20:02: Recv: 250 Reset OK<EOL>
26.11.2004 23:20:02: Sent: Mail from:<panov@mail.ru><EOL>
26.11.2004 23:20:02: Recv: 250 OK<EOL>
26.11.2004 23:20:02: Sent: RCPT to:<panov@spb.gkbank.ru><EOL>
26.11.2004 23:20:02: Recv: 250 Accepted<EOL>
26.11.2004 23:20:02: Sent: Data<EOL>
26.11.2004 23:20:02: Recv: 354 Enter message, ending with "." on a line by itself<EOL>
26.11.2004 23:20:02: Sent: From: "Alexander" <panov@mail.ru><EOL>
26.11.2004 23:20:02: Sent: Subject: =?ISO-8859-1?Q?=D2=E5=F1=F2?=<EOL>
26.11.2004 23:20:02: Sent: To: panov@gkbank.ru<EOL>
26.11.2004 23:20:02: Sent: Reply-To: panov@mail.ru<EOL>
26.11.2004 23:20:02: Sent: Date: Fri, 26 Nov 2004 23:20:02 +0300<EOL>
26.11.2004 23:20:02: Sent: X-Priority: 3<EOL>
26.11.2004 23:20:02: Sent: X-Library: Indy 8.0.25<EOL>
26.11.2004 23:20:02: Sent: <EOL>
26.11.2004 23:20:02: Sent: Memo1<EOL>
26.11.2004 23:20:02: Sent: .<EOL>
26.11.2004 23:20:12: Recv: 550 failed to run checks, message rejected <EOL>
26.11.2004 23:20:12: Sent: Quit<EOL>
26.11.2004 23:20:12: Disconnected.


 
Verg ©   (2004-11-26 23:30) [28]


> [26] Alexander Panov ©   (26.11.04 23:17)


Вот, вместе с EHLO частью протокола тебе отправил Memo1 письмо кодом от Indy9.

Вопрос - не по месту. Надо спрашивать у админов mail.ru. Я не знаю и не вижу этих проблем.


 
Alexander Panov ©   (2004-11-27 01:07) [29]

>Verg ©   (26.11.04 23:30) [28]

Не успел с работы отписать, пишу сейчас.

После установки Indy9 тот код заработал нормально, похоже, что глюк в Indy8.


 
Verg ©   (2004-11-27 10:07) [30]

Так покажи такой же протокол из под 9-ки. Сравним - в чем косяк.


 
Неизвестный ©   (2004-11-27 11:02) [31]

Увидел знакомую ошибку решил добавить как я нашел выход из этой ситуации (на 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 для отправки писем пароль не нужен.


 
OneFragLeft ©   (2004-11-27 15:32) [32]

Ух, сколько запарки-то было. Всем большое спасибо. Всё работает.


 
XGarik   (2004-11-27 15:39) [33]

Зачем ты написал idSmtp1.AuthenticationType:=atNone;
А затем вбил
IdSMTP1.Username:="*******";
IdSMTP1.Password:="*******";
SMTP сервак на MAIL.RU не требует авторизаци...

Просто грохни эти две строчки (только не вбивай мое мыло в bad-list...!!!)


 
OneFragLeft ©   (2004-11-27 19:16) [34]

Verg ©   (26.11.04 22:21) [12]
Как послать сообщение с TELNET?


 
Verg ©   (2004-11-27 21:56) [35]

Для начала...

http://www.faqs.org/rfcs/rfc821.html


 
OneFragLeft ©   (2004-11-28 00:13) [36]

OneFragLeft ©   (27.11.04 15:32) [32]

Работать-то работает, только вот с русским проблема. Приходит совсем не то, что посылаю. Как лечить, доктор?


 
Serega   (2004-11-28 00:43) [37]

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......!?


 
Alexander Panov ©   (2004-11-28 00:44) [38]

>Verg ©   (27.11.04 10:07) [30]

Так покажи такой же протокол из под 9-ки. Сравним - в чем косяк.

Только в понедельник - на работе.


 
OneFragLeft ©   (2004-11-28 00:55) [39]

Странно, на обычный ящик приходит нормально, а на телефон - коряво. Была, допустим в слове буква А, получается Ю. Чё за ботва?


 
OneFragLeft ©   (2004-11-28 00:58) [40]

>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);


 
Serega   (2004-11-28 01:01) [41]

> OneFragLeft ©   (28.11.04 00:58) [40]

na idsmtp krome timeout, port, i host, drugie properitis ne stavatsa......!?


 
OneFragLeft ©   (2004-11-28 01:03) [42]

Нет, так работает.
Только строчку надо закомментировать Values["X-Library"] := gsIdProductName + " " + gsIdVersion ;
Которая находиться в IdMessage.pas


 
Serega   (2004-11-28 01:14) [43]

stranno, moi Delphi(7) soprativlaetsa.....


 
OneFragLeft ©   (2004-11-28 01:15) [44]

Каким образом?


 
Serega   (2004-11-28 01:22) [45]

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:25) [46]

IDMessage - на форме?


 
Serega   (2004-11-28 01:28) [47]

da....
idMessage2 na forme, no sasdajotsa v Procedure....:)
procedure SendMyMail();
var
IdMessage2: TIdMessage;

begin
     idmessage2 := TiDMessage.Create(nil);


 
OneFragLeft ©   (2004-11-28 01:28) [48]

Постучи в аську: 303069836



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

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

Наверх




Память: 0.6 MB
Время: 0.045 c
9-1100265456
yaha
2004-11-12 16:17
2005.02.13
новая версия "Войны Машин"


14-1106242977
Stef
2005-01-20 20:42
2005.02.13
Помогите найти компонент


14-1106648618
AlexG
2005-01-25 13:23
2005.02.13
Astrosoft Development - кто-нибудь может отзыв о ней оставить?


1-1107106333
Dmitry_04
2005-01-30 20:32
2005.02.13
Определение Form.Width и Form.Height


14-1106366180
able
2005-01-22 06:56
2005.02.13
Выбор FTP-сервера под Win32