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

Вниз

Отправка почты. Через NMSMTP.   Найти похожие ветки 

 
Новочеркасский Волк ©   (2006-02-23 09:54) [0]

Здравствуйте. Я пытаюсь отправить почту через (Delphi 5) компонет NMSMTP. Пробовал так:


procedure TForm1.Button1Click(Sender: TObject);
begin
NMSMTP1.Host := "www.mail.ru";
NMSMTP1.Connect;
with NMSMTP1.PostMessage do
begin
FromAddress := "bilbo@baggins.com";
ToAddress.Add("gandolf@baggins.corn") ;
Subject := "Test";
Body.Add("This is a test");
NMSMTP1.SendMail;
NMSMTP1.Disconnect;
end;
end;

Но он выдаёт ошибку Connection Failed. Просто заполнил все поля. На кнопке было только сконектиться и отправить. Таже самая ошибка. Почему так??? Подкиньте  пожалуйсто рабочий код через который вы отправляете почту. Или покажите где ошибка.
--------------------------
Заранее всем спасибо!!!


 
umbra ©   (2006-02-23 10:00) [1]

а на mail.ru есть smtp-сервер, который работает на порте 25? сам код правильный, а сообщение об ошибке говорит, что к серверу невозможно законнектиться.


 
palva ©   (2006-02-23 10:20) [2]

> NMSMTP1.Host := "www.mail.ru";
NMSMTP1.Host := "smtp.mail.ru";

http://www.mail.ru/pages/help/79.html


 
Новочеркасский Волк ©   (2006-02-23 15:18) [3]

Ну сделал я код таким:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
NMSMTP1.Host := "smtp.inbox.ru";
NMSMTP1.Connect;
with NMSMTP1.PostMessage do
begin
FromAddress := "suport_service@inbox.ru";
ToAddress.Add("odinokiy_volk@inbox.ru") ;
Subject:="Test";
Body.Add("This is a test");
NMSMTP1.SendMail;
NMSMTP1.Disconnect;
end;
end;

Порт сделал 25. И таже ошибка. Попробуйте пожалуйсто этот код у себя получиться ли у вас???


 
palva ©   (2006-02-23 16:06) [4]

> Попробуйте пожалуйсто этот код у себя получиться ли у вас???

Не могу, у меня Delphi 7. Кроме того у меня нет регистрации на inbox, я даже не могу зайти в хелп по подключению к inbox.


 
Новочеркасский Волк ©   (2006-02-24 09:31) [5]

Ладно мне пофигу на Inbox и на Mail.ru ине просто надо, чтоб у меня или у того человека который будит пользовать мою прогу. По нажатию Buttion1 отправлялось письмо на майл вписанным из Edit1. И всё!!!
------------------------------------------------------------------
http://rost-on-don.net.ru/forumdisplay.php?f=28


 
umbra ©   (2006-02-24 09:58) [6]

а у вас прямой доступ в интренет? нет ли файервола?


 
Новочеркасский Волк ©   (2006-02-24 16:46) [7]

Всмысле прямой? Обычный карточный, модемный DialUp. И что такое файервол???


 
umbra ©   (2006-02-24 17:15) [8]

Проблема не в коде, проблема в подключении к интернету. Connection Failed появляется потому, что Ваша программа не может соединиться с почтовым сервером или может, но не успевает за отведенное время. Надеюсь, вы пробуете отправить письмо, когда соединение с интернет установлено.


 
Новочеркасский Волк ©   (2006-02-24 18:49) [9]

Ну да. Я всегда пытался отправить письмо при подключённом Интернете. А как же иначе? Скорее всего, вы правы и ей просто незватает времени, т.к. нэт не очень скоростной (в среднем 37кб\с). Можно ли как нить увеличеть время ожидания???
--------------------------------------------
ЗАХОДИТЕ НА:  http://rost-on-don.net.ru/forumdisplay.php?f=28


 
umbra ©   (2006-02-24 19:03) [10]

кроме того, сходите на страницу http://www.mail.ru/pages/help/79.html как рекомендовал Вам palva в [2] и внимательно ее прочтите. Там, в частности, написано, что smtp.inbox.ru требует авторизации, т.е чтобы отослать письмо, надо ввести логин и пароль. Другие сервера могут авторизации не требовать, что Вам надо учесть в Вашей программе. Как увеличить время ожидания в NMSMTP я точно не знаю. Должно быть какое-то свойство с именем наподобие Timeout, ConnectTimeout и т.д. Или же этот таймаут можно указать как параметр метода Connect. В общем, посмотрите в справке по этому компоненту


 
Новочеркасский Волк ©   (2006-02-24 21:31) [11]

А какие серверы не требуют авторизации??? Не подскажети ли? Я вообшем нашёл код с авторизацией вот он:

procedure SendMail;
var
LSMTP: TIdSMTP;
LMsg: TIdMessage;
x: TIdAttachment; //Это аттач письма, можешь удалить, если не надо
//Обьявлям переменные.
begin //Ну начинаем
LSMTP := TIdSMTP.Create(nil); //Создаемся
LMsg := TIdMessage.Create(LSMTP);
with LMsg do
begin
Subject := "Тема"; // Здесь вводим тему
Recipients.EMailAddresses := "blabla@yandex.ru" ; // куда будет послано письмо...

From.Text := "karkar67@mail.ru"; //От кудыкина будет письмо
Body.Add("Текст письма");

x:=TIdAttachment.Create(LMsg.MessageParts,"Путь к файлу аттача"); //не нужен аттач - стирай всю строку
end;
with LSMTP do
begin
AuthenticationType:=atNone;
Host := "smtp.mail.ru";
Port := 25;
Username :="karkar7@mail.ru" ; //здесь происходит авторизация(как в почтовом клиенте)
Password :="loxi" ;
try
Connect; //зухель коннект!!
Send(LMsg);
except
end;
end;
FreeAndNil(LMsg);
FreeAndNil(LSMTP);
end;

Но только я чтото у себя на Делфи 5 не могу найти компонент TIdMessage есть только TNMMsg я думал что это тот, но нет. А вообше лучше всего просто сервер без авторизации. И всё. Ну как вы  отправляете (если отправляете) просто скажите код. Код который йспользуете вы, для отправки.
--------------------------------------------
ЗАХОДИТЕ НА:  http://rost-on-don.net.ru/forumdisplay.php?f=28


 
palva ©   (2006-02-24 23:10) [12]

TIdMessage шла в составе Indy-компонент вместе с 7=й версией Delphi. Indy заменила все компоненты NM... из 6-й версии. В 5-й Delphi по-моему компонент NM... не было. Вы наверно, ставили их дополнительно.

Короче, вам нужна компонента, которая поддерживала бы SMTP-авторизацию. Может быть NMSMTP тоже поддерживает - не в курсе. Если будете скачивать и устанавливать Indy, то имейте ввиду, что с Delphi 7 шла 9-я версия, а на сайте http://www.indyproject.org/Sockets/index.en.iwp 10-я версия Indy. Так что если найдете примеры кода, то обращайте внимание для какой версии они написаны.

Можете плюнуть на это дело, подсмотреть в журнале Outlook Express, как он делает авторизацию и реализовать точно также отправку самому при помощи компоненты низкого уровня Socket. Наверно такая компонента имеется в NM - как-нибудь NMSocket.


 
Новочеркасский Волк ©   (2006-02-25 12:28) [13]

Ссылка не работает. Не подскажете где их можно закачать???
--------------------------------------------
ЗАХОДИТЕ НА:  http://rost-on-don.net.ru/forumdisplay.php?f=28


 
Новочеркасский Волк ©   (2006-02-25 12:34) [14]

Ссылка не работает. Не подскажете где эти компоненты Indy можно закачать???
--------------------------------------------
ЗАХОДИТЕ НА:  http://rost-on-don.net.ru/forumdisplay.php?f=28


 
palva ©   (2006-02-25 13:27) [15]

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


 
Новочеркасский Волк ©   (2006-02-25 18:49) [16]

Ладно. Ну допустим найду я его и скачаю. Как мне его установить??? Не подскажеш ли???
----------------------------------------------------------------
ЗАХОДИТЕ НА:  http://rost-on-don.net.ru/


 
palva ©   (2006-02-25 23:08) [17]

В этих вопросах я плаваю.
Но как скачаешь, так сразу спроси. "Новый вопрос - новая ветка."


 
Новочеркасский Волк ©   (2006-02-27 11:10) [18]

А эту новую ветку "сломали"!!! На корню. Вопрос закрыли. В нём не было ещё ни одного ответа!!!


 
palva ©   (2006-02-27 11:37) [19]

Мда, а сервер http://www.indyproject.org/ по-прежнему лежит.
Ничем не могу помочь. Может кто из участников форума знает где еще можно скачать Indy?


 
umbra ©   (2006-02-27 11:39) [20]


> А какие серверы не требуют авторизации??? Не подскажети
> ли? Я вообшем нашёл код с авторизацией вот он

код Вашего примера основан на использовании библиотеки Indy. Код, который вы привели в [0] использует другую библиотеку компонентов. Но при этом принципы работы почты не меняются, и у TNMSMTP тоже долны быть свойства User, Password и т.д., аналогичные свойствам TIdSMTP. Прочтите справку по компоненту.


> А какие серверы не требуют авторизации??? Не подскажети
> ли?

это зависит только от хозяина сервера - требовать авторизации при отправке почты или нет. Заранее этого знать нельзя, надо всегда читать справку на сервере, которым собираетесь пользоваться.


 
umbra ©   (2006-02-27 11:48) [21]

инсталлятор инди можно скачать с http://atozedsoftware.com


 
Игорь Шевченко ©   (2006-02-27 15:41) [22]

Новочеркасский Волк ©   (25.02.06 18:49) [16]

Убери подпись.


 
Новочеркасский Волк ©   (2006-03-04 17:43) [23]

Вообщем установил я себе Delphi 6. Там Indy есть. сделал код саким:

procedure SendMail;
var
LSMTP: TIdSMTP;
LMsg: TIdMessage;
x: TIdAttachment; //Это аттач письма, можешь удалить, если не надо
//Обьявлям переменные.
begin //Ну начинаем
LSMTP := TIdSMTP.Create(nil); //Создаемся
LMsg := TIdMessage.Create(LSMTP);
with LMsg do
begin
Subject := "Тема"; // Здесь вводим тему
Recipients.EMailAddresses := "blabla@yandex.ru" ; // куда будет послано письмо...

From.Text := "karkar67@mail.ru"; //От кудыкина будет письмо
Body.Add("Текст письма");

x:=TIdAttachment.Create(LMsg.MessageParts,"Путь к файлу аттача"); //не нужен аттач - стирай всю строку

end;
with LSMTP do
begin
AuthenticationType:=atNone;
Host := "smtp.mail.ru";
Port := 25;
Username :="karkar7@mail.ru" ; //здесь происходит авторизация(как в почтовом клиенте)
Password :="loxi" ;
try
Connect; //зухель коннект!!
Send(LMsg);
except
end;
end;
FreeAndNil(LMsg);
FreeAndNil(LSMTP);

end;

Вставил туда свои параметры. Вчера всё отправлялось. А сёдня нифига не хочет не может авторизироваться!!! Почему???
>
А какую подпись надо убрать то??
>
--------------------------------
Заранее благодарен!!!!


 
palva ©   (2006-03-04 18:38) [24]

AuthenticationType:=atNone;
Это значит вы не хотите делать авторизацию на входе?


 
Новочеркасский Волк ©   (2006-03-05 18:27) [25]

Ну поменял я на atLogin и всё равно вылетает таже ошибка

Project Project1.exe raised exception class EIdProtocolRepliyError with message "503 administrative prohibition -- autorization required. Users in yor domian are not allowed to send email without autorization. See http://www.mail.ru/pages/help/261.html for details." Process stopet. Use Step or Run to continue.

Что делвть подскажите! Или дайте пожалуйсто код через который вы отправляете. Просто срочно надо научиться отправлять письмо через Delphi.
-------------------------------------
Заранее всем спасибо!!!


 
Новочеркасский Волк ©   (2006-03-05 18:30) [26]

Ну поменял я на atLogin и всё равно вылетает таже ошибка

Project Project1.exe raised exception class EIdProtocolRepliyError with message "503 administrative prohibition -- autorization required. Users in yor domian are not allowed to send email without autorization. See http://www.mail.ru/pages/help/261.html for details." Process stopet. Use Step or Run to continue.
Что делвть подскажите! Или дайте пожалуйсто код через который вы отправляете. Просто срочно надо научиться отправлять письмо через Delphi.
-----------------------------


 
palva ©   (2006-03-05 19:23) [27]

По этой ссылке написано, что from должно совпадать с Username, а у вас не совпадает. А может быть и не в этом дело.

Сам я попробовать код не могу, потому что мой провайдер закрыл 25 порт на внешние SMTP-сервера. А сервер провайдера работает без аутентификации.

Когда 25 порт у меня был открыт я использовал авторизацию на yandex.ru, правда это было на бейсике с использованием WinSocket. Так вот, имя пользователя я задавал там без собаки, то есть для вашего случая просто karkar7. Может быть, это соображение поможет.



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

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

Наверх




Память: 0.55 MB
Время: 0.043 c
2-1141375218
Creative
2006-03-03 11:40
2006.03.19
Как увидеть из одного юнита класс, описанный во втором


15-1140616241
batalov
2006-02-22 16:50
2006.03.19
Windows CE


15-1140809079
DillerXX
2006-02-24 22:24
2006.03.19
Генетические алгоритмы, нейронные сети...


15-1140714198
Здешний
2006-02-23 20:03
2006.03.19
Объясните задачу по физике.


6-1133973667
Хинт
2005-12-07 19:41
2006.03.19
Отправить пакет