![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка почты. Через NMSMTP. [D5, XP]
Новочеркасский Волк © (2006-02-23 09:54:00)Здравствуйте. Я пытаюсь отправить почту через (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. Просто заполнил все поля. На кнопке было только сконектиться и отправить. Таже самая ошибка. Почему так??? Подкиньте пожалуйсто рабочий код через который вы отправляете почту. Или покажите где ошибка.
--------------------------
Заранее всем спасибо!!!
palva (2006-03-05 19:23:00) [1]По этой ссылке написано, что from должно совпадать с Username, а у вас не совпадает. А может быть и не в этом дело.
Сам я попробовать код не могу, потому что мой провайдер закрыл 25 порт на внешние SMTP-сервера. А сервер провайдера работает без аутентификации.
Когда 25 порт у меня был открыт я использовал авторизацию на yandex.ru, правда это было на бейсике с использованием WinSocket. Так вот, имя пользователя я задавал там без собаки, то есть для вашего случая просто karkar7. Может быть, это соображение поможет.
Новочеркасский Волк (2006-03-05 18:30:00) [2]Ну поменял я на 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.htmlfor details.' Process stopet. Use Step or Run to continue.
Что делвть подскажите! Или дайте пожалуйсто код через который вы отправляете. Просто срочно надо научиться отправлять письмо через Delphi.
-----------------------------
Новочеркасский Волк (2006-03-05 18:27:00) [3]Ну поменял я на 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.htmlfor details.' Process stopet. Use Step or Run to continue.
Что делвть подскажите! Или дайте пожалуйсто код через который вы отправляете. Просто срочно надо научиться отправлять письмо через Delphi.
-------------------------------------
Заранее всем спасибо!!!
palva (2006-03-04 18:38:00) [4]AuthenticationType:=atNone;
Это значит вы не хотите делать авторизацию на входе?
Новочеркасский Волк (2006-03-04 17:43:00) [5]Вообщем установил я себе 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;
Вставил туда свои параметры. Вчера всё отправлялось. А сёдня нифига не хочет не может авторизироваться!!! Почему???
>
А какую подпись надо убрать то??
>
--------------------------------
Заранее благодарен!!!!
Игорь Шевченко (2006-02-27 15:41:00) [6]Новочеркасский Волк © (25.02.06 18:49) [16]
Убери подпись.
umbra (2006-02-27 11:48:00) [7]инсталлятор инди можно скачать с http://atozedsoftware.com
umbra (2006-02-27 11:39:00) [8]
> А какие серверы не требуют авторизации??? Не подскажети
> ли? Я вообшем нашёл код с авторизацией вот он
код Вашего примера основан на использовании библиотеки Indy. Код, который вы привели в [0] использует другую библиотеку компонентов. Но при этом принципы работы почты не меняются, и у TNMSMTP тоже долны быть свойстваUser, Passwordи т.д., аналогичные свойствамTIdSMTP. Прочтите справку по компоненту.
> А какие серверы не требуют авторизации??? Не подскажети
> ли?
это зависит только от хозяина сервера - требовать авторизации при отправке почты или нет. Заранее этого знать нельзя, надо всегда читать справку на сервере, которым собираетесь пользоваться.
palva (2006-02-27 11:37:00) [9]Мда, а сервер http://www.indyproject.org/по-прежнему лежит.
Ничем не могу помочь. Может кто из участников форума знает где еще можно скачать Indy?
Новочеркасский Волк (2006-02-27 11:10:00) [10]А эту новую ветку "сломали"!!! На корню. Вопрос закрыли. В нём не было ещё ни одного ответа!!!
palva (2006-02-25 23:08:00) [11]В этих вопросах я плаваю.
Но как скачаешь, так сразу спроси. "Новый вопрос - новая ветка."
Новочеркасский Волк (2006-02-25 18:49:00) [12]Ладно. Ну допустим найду я его и скачаю. Как мне его установить??? Не подскажеш ли???
----------------------------------------------------------------
ЗАХОДИТЕ НА: http://rost-on-don.net.ru/
palva (2006-02-25 13:27:00) [13]Когда отправлял сообщение ссылка работала. А сейчас что-то весь сервер лежит. Попробуйте позже, может заработает.
Новочеркасский Волк (2006-02-25 12:34:00) [14]Ссылка не работает. Не подскажете где эти компоненты Indy можно закачать???
--------------------------------------------
ЗАХОДИТЕ НА: http://rost-on-don.net.ru/forumdisplay.php?f=28
Новочеркасский Волк (2006-02-25 12:28:00) [15]Ссылка не работает. Не подскажете где их можно закачать???
--------------------------------------------
ЗАХОДИТЕ НА: http://rost-on-don.net.ru/forumdisplay.php?f=28
palva (2006-02-24 23:10:00) [16]TIdMessage шла в составе Indy-компонент вместе с 7=й версией Delphi. Indy заменила все компоненты NM... из 6-й версии. В 5-й Delphi по-моему компонент NM... не было. Вы наверно, ставили их дополнительно.
Короче, вам нужна компонента, которая поддерживала бы SMTP-авторизацию. Может быть NMSMTP тоже поддерживает - не в курсе. Если будете скачивать и устанавливать Indy, то имейте ввиду, что с Delphi 7 шла 9-я версия, а на сайте http://www.indyproject.org/Sockets/index.en.iwp10-я версия Indy. Так что если найдете примеры кода, то обращайте внимание для какой версии они написаны.
Можете плюнуть на это дело, подсмотреть в журнале Outlook Express, как он делает авторизацию и реализовать точно также отправку самому при помощи компоненты низкого уровня Socket. Наверно такая компонента имеется в NM - как-нибудь NMSocket.
Новочеркасский Волк (2006-02-24 21:31:00) [17]А какие серверы не требуют авторизации??? Не подскажети ли? Я вообшем нашёл код с авторизацией вот он:
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
umbra (2006-02-24 19:03:00) [18]кроме того, сходите на страницу http://www.mail.ru/pages/help/79.htmlкак рекомендовал Вам palva в [2] и внимательно ее прочтите. Там, в частности, написано, что smtp.inbox.ru требует авторизации, т.е чтобы отослать письмо, надо ввести логин и пароль. Другие сервера могут авторизации не требовать, что Вам надо учесть в Вашей программе. Как увеличить время ожидания в NMSMTP я точно не знаю. Должно быть какое-то свойство с именем наподобие Timeout, ConnectTimeout и т.д. Или же этот таймаут можно указать как параметр метода Connect. В общем, посмотрите в справке по этому компоненту
Новочеркасский Волк (2006-02-24 18:49:00) [19]Ну да. Я всегда пытался отправить письмо при подключённом Интернете. А как же иначе? Скорее всего, вы правы и ей просто незватает времени, т.к. нэт не очень скоростной (в среднем 37кб\с). Можно ли как нить увеличеть время ожидания???
--------------------------------------------
ЗАХОДИТЕ НА: http://rost-on-don.net.ru/forumdisplay.php?f=28
umbra (2006-02-24 17:15:00) [20]Проблема не в коде, проблема в подключении к интернету.
Connection Failedпоявляется потому, что Ваша программа не может соединиться с почтовым сервером или может, но не успевает за отведенное время. Надеюсь, вы пробуете отправить письмо, когда соединение с интернет установлено.