Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.013 c
1-1139902820
NeyroSpace
2006-02-14 10:40
2006.03.19
Обработка ошибок при инициализации приложения


15-1140903519
DillerXX
2006-02-26 00:38
2006.03.19
Посмотрите что я творил ;)


2-1141196548
JEK2
2006-03-01 10:02
2006.03.19
Как програмно изменить размер канвы TImage


1-1139819308
Maverick
2006-02-13 11:28
2006.03.19
Сохранение пользовательских настроек


15-1140802764
ArtemESC
2006-02-24 20:39
2006.03.19
Frameset...





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