Форум: "Сети";
Текущий архив: 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);
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.039 c