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

Вниз

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



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

Форум: "Сети";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.049 c
3-1105716383
SergP.
2005-01-14 18:26
2005.02.13
Поддерживает ли SQL побитовые операции?


1-1107234528
StarCon
2005-02-01 08:08
2005.02.13
ScrollBar передвинуть


1-1107005255
Profi
2005-01-29 16:27
2005.02.13
Сохранения в файл TStringList


4-1104133749
Andrej
2004-12-27 10:49
2005.02.13
Как перетащить файл на форму


1-1107078546
MakedoneZ
2005-01-30 12:49
2005.02.13
Что означает ошибка "Invalid variant type convertion".





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский