Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизОтправка почты. Через 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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.014 c