Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почтовик, Почтовый сервер 
:(
    Опции темы
php
Дата 13.4.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Пытаюсь создать почтовый сервер на компонентах Indy такие как IdSMTPServer и IdPOP3Server,
но ничего не получатется почта не отправляется и не принимается, также неясно как добавлять (регистрировать рользователя) ну скажем к примеру [email protected], помогите плиз !!
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
SneG0K
Дата 13.4.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



    Покажи, что ты уже сделал, что получается. А то ты так поверхностно рассказал. Я ведь тоже могу дать тебе ответ типа http://www.google.com.ua/search?q=%D0%BF%D...lient=firefox-a
PM WWW Skype   Вверх
php
Дата 14.4.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да в общем то и показывать то нечего взял стандартные демки которые идут вместе с Indy
скомпилил настроил их через TheBat, т.е. прописал там в настройках SMTP\POP3 сервер внешний адрес
моего компа который смотрит в сеть, почта вроде уходит ну как пишет TheBat, что письмо отправлено успешно,
но до адресата оно не доходит причина пока не известна поэтому и от безысходности спрашиваю здесь (т.к перепробовал уже все мыслимые и немыслимые варианты, уже и домен создавал через DynDNS) 

C POP3 сервером вообще ничего не понятно как он вообще работает?, как добавлять адресатов, пользователей чтоб
этот сервер потом принимал от них почту вот в чем вопрос?
Просто интересная ситуация складывается раз уж они сделали такие демки значит они должны работать, просто 
это я сам что-то не так делаю или не доделываю?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
SneG0K
Дата 14.4.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Эээ... Из твоих слов я понял, что ты юзаеш свои SMTP и POP сервера. Так вот попробуй допустим на mail.ru протестировать. И было бы хорошо если бы ты всетаки выложил сорцы
PM WWW Skype   Вверх
php
Дата 18.4.2008, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да я как раз пытаюсь свои сервера сделать..
Да я и на mail.ru и на yandex тестировал, сорс выложу чуть позже 
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
php
Дата 24.4.2008, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Итак код SMTP сервера код для Indy9 могу если, что и для версии 10 выложить если нужно будет..

Код: 
Код

{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  23278: Main.pas 
{
{   Rev 1.0.1.0    25/10/2004 22:49:48  ANeillans    Version: 9.0.17
{ Verified
}
{
{   Rev 1.0    12/09/2003 21:41:36  ANeillans
{ Initial Checking.
{ Verified with Indy 9 and D7
}
{
  Demo Name:  SMTP Server
  Created By: Andy Neillans
          On: 27/10/2002

  Notes:
   Demonstration of SMTPServer (by use of comments only!!)
   Read the RFC to understand how to store and manage server data, and
   therefore be able to use this component effectivly.

  Version History:
    12th Sept 03: Andy Neillans
                  Cleanup. Added some basic syntax checking for example.
     
  Tested:
   Indy 9:
     D5:     Untested
     D6:     Untested
     D7:     25th Oct 2004 by Andy Neillans
             Tested with Telnet and Outlook Express 6
}
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IdTCPServer, IdSMTPServer, StdCtrls,
  IdMessage, IdEMailAddress, IdBaseComponent, IdComponent;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ToLabel: TLabel;
    FromLabel: TLabel;
    SubjectLabel: TLabel;
    IdSMTPServer1: TIdSMTPServer;
    Label4: TLabel;
    btnServerOn: TButton;
    btnServerOff: TButton;
    procedure IdSMTPServer1CommandAUTH(AThread: TIdPeerThread;
      const CmdStr: String);
    procedure IdSMTPServer1CommandQUIT(AThread: TIdPeerThread);
    procedure IdSMTPServer1CommandX(AThread: TIdPeerThread;
      const CmdStr: String);
    procedure IdSMTPServer1CommandMAIL(const ASender: TIdCommand;
      var Accept: Boolean; EMailAddress: String);
    procedure IdSMTPServer1CommandRCPT(const ASender: TIdCommand;
      var Accept, ToForward: Boolean; EMailAddress: String;
      var CustomError: String);
    procedure IdSMTPServer1ReceiveRaw(ASender: TIdCommand;
      var VStream: TStream; RCPT: TIdEMailAddressList;
      var CustomError: String);
    procedure IdSMTPServer1ReceiveMessage(ASender: TIdCommand;
      var AMsg: TIdMessage; RCPT: TIdEMailAddressList;
      var CustomError: String);
    procedure IdSMTPServer1ReceiveMessageParsed(ASender: TIdCommand;
      var AMsg: TIdMessage; RCPT: TIdEMailAddressList;
      var CustomError: String);
    procedure IdSMTPServer1CommandHELP(ASender: TIdCommand);
    procedure IdSMTPServer1CommandSAML(ASender: TIdCommand);
    procedure IdSMTPServer1CommandSEND(ASender: TIdCommand);
    procedure IdSMTPServer1CommandSOML(ASender: TIdCommand);
    procedure IdSMTPServer1CommandTURN(ASender: TIdCommand);
    procedure IdSMTPServer1CommandVRFY(ASender: TIdCommand);
    procedure btnServerOnClick(Sender: TObject);
    procedure btnServerOffClick(Sender: TObject);
    procedure IdSMTPServer1CheckUser(ASender: TIdCommand;
      var Accept: Boolean; Username, Password: String);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.IdSMTPServer1CommandAUTH(AThread: TIdPeerThread;
const CmdStr: String);
begin
 // This is where you would process the AUTH command - for now, we send a error
 AThread.Connection.Writeln(IdSMTPServer1.Messages.ErrorReply);
end;

procedure TForm1.IdSMTPServer1CommandQUIT(AThread: TIdPeerThread);
begin
// Process any logoff events here - e.g. clean temp files
end;

procedure TForm1.IdSMTPServer1CommandX(AThread: TIdPeerThread;
  const CmdStr: String);
begin
 // You can use this for debugging :)
 // It should be noted, that no standard clients ever send this command.
end;

procedure TForm1.IdSMTPServer1CommandMAIL(const ASender: TIdCommand;
  var Accept: Boolean; EMailAddress: String);
Var
 IsOK : Boolean;
begin
 // This is required!
 // You check the EMAILADDRESS here to see if it is to be accepted / processed.
 IsOK := False;
 if Pos('@', EMailAddress) > 0 then   // Basic checking for syntax
  IsOK := True;

 // Set Accept := True if its allowed
 if IsOK then
  Accept := True
 Else
  Accept := False;
end;

procedure TForm1.IdSMTPServer1CommandRCPT(const ASender: TIdCommand;
  var Accept, ToForward: Boolean; EMailAddress: String;
  var CustomError: String);
Var
 IsOK : Boolean;
begin
 // This is required!
 // You check the EMAILADDRESS here to see if it is to be accepted / processed.
 // Set Accept := True if its allowed
 // Set ToForward := True if its needing to be forwarded.
 IsOK := False;
 if Pos('@', EMailAddress) > 0 then   // Basic checking for syntax
  IsOK := True
 Else
  CustomError := '500 No at sign'; // If you are going to use the CustomError property, you need to include the error code
                                   // This allows you to use the extended error reporting.

 // Set Accept := True if its allowed
 if IsOK then
  Accept := True
 Else
  Accept := False;
end;

procedure TForm1.IdSMTPServer1ReceiveRaw(ASender: TIdCommand;
  var VStream: TStream; RCPT: TIdEMailAddressList;
  var CustomError: String);
begin
// This is the main event for receiving the message itself if you are using
// the ReceiveRAW method
// The message data will be given to you in VSTREAM
// Capture it using a memorystream, filestream, or whatever type of stream
// is suitable to your storage mechanism.
// The RCPT variable is a list of recipients for the message
end;

procedure TForm1.IdSMTPServer1ReceiveMessage(ASender: TIdCommand;
  var AMsg: TIdMessage; RCPT: TIdEMailAddressList;
  var CustomError: String);
begin
// This is the main event if you have opted to have idSMTPServer present the message packaged as a TidMessage
// The AMessage contains the completed TIdMessage.
// NOTE: Dont forget to add IdMessage to your USES clause!

ToLabel.Caption := AMsg.Recipients.EMailAddresses;
FromLabel.Caption := AMsg.From.Text;
SubjectLabel.Caption := AMsg.Subject;
Memo1.Lines := AMsg.Body;

// Implement your file system here :)
end;

procedure TForm1.IdSMTPServer1ReceiveMessageParsed(ASender: TIdCommand;
  var AMsg: TIdMessage; RCPT: TIdEMailAddressList;
  var CustomError: String);
begin
// This is the main event if you have opted to have the idSMTPServer to do your parsing for you.
// The AMessage contains the completed TIdMessage.
// NOTE: Dont forget to add IdMessage to your USES clause!

ToLabel.Caption := AMsg.Recipients.EMailAddresses;
FromLabel.Caption := AMsg.From.Text;
SubjectLabel.Caption := AMsg.Subject;
Memo1.Lines := AMsg.Body;

// Implement your file system here :)

end;

procedure TForm1.IdSMTPServer1CommandHELP(ASender: TIdCommand);
begin
// here you can send back a lsit of supported server commands
end;

procedure TForm1.IdSMTPServer1CommandSAML(ASender: TIdCommand);
begin
// not really used anymore - see RFC for information
end;

procedure TForm1.IdSMTPServer1CommandSEND(ASender: TIdCommand);
begin
// not really used anymore - see RFC for information
end;

procedure TForm1.IdSMTPServer1CommandSOML(ASender: TIdCommand);
begin
// not really used anymore - see RFC for information
end;

procedure TForm1.IdSMTPServer1CommandTURN(ASender: TIdCommand);
begin
// not really used anymore - see RFC for information
end;

procedure TForm1.IdSMTPServer1CommandVRFY(ASender: TIdCommand);
begin
// not really used anymore - see RFC for information
end;

procedure TForm1.btnServerOnClick(Sender: TObject);
begin
 btnServerOn.Enabled := False;
 btnServerOff.Enabled := True;
 IdSMTPServer1.active := true;
end;

procedure TForm1.btnServerOffClick(Sender: TObject);
begin
 btnServerOn.Enabled := True;
 btnServerOff.Enabled := False;
 IdSMTPServer1.active := false;
end;

procedure TForm1.IdSMTPServer1CheckUser(ASender: TIdCommand;
  var Accept: Boolean; Username, Password: String);
begin
  Accept:= False;
  if ((UserName = '[email protected]') and (Password = '1234')) then
  Accept:= True;
end;

end.



И код POP3 Сервера:
Код

{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  22918: MainFrm.pas 
{
{   Rev 1.2    25/10/2004 22:49:28  ANeillans    Version: 9.0.17
{ Verified
}
{
{   Rev 1.1    12/09/2003 21:18:36  ANeillans
{ Verified with Indy 9 on D7.
{ Added instruction memo.
}
{
{   Rev 1.0    10/09/2003 20:40:48  ANeillans
{ Initial Import (Used updated version - not original 9 Demo)
}
{
  Demo Name:  POP3 Server
  Created By: Siamak Sarmady
          On: 27/10/2002

  Notes:
   Demonstrates POP3 server events (by way of comment - NOT functional!)

  Version History:
   12th Sept 03: Andy Neillans
                 Added the comments memo on the form for information.
   8th July 03:  Andy Neillans
                 Fixed the demo for I9.014
   Unknown:      Allen O'Neill
                 Added in some missing command handler comments

  Tested:
   Indy 9:
     D5:     Untested
     D6:     Untested
     D7:     25th Oct 2004 by Andy Neillans
             Tested with Telnet and Outlook Express 6
}
unit MainFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IdBaseComponent, IdComponent, IdTCPServer, IdPOP3Server, StdCtrls;

type
  TfrmMain = class(TForm)
    btnExit: TButton;
    IdPOP3Server1: TIdPOP3Server;
    moComments: TMemo;
    procedure btnExitClick(Sender: TObject);
    procedure IdPOP3Server1Connect(AThread: TIdPeerThread);
    procedure FormActivate(Sender: TObject);
    procedure IdPOP3Server1CheckUser(AThread: TIdPeerThread;
      LThread: TIdPOP3ServerThread);
    procedure IdPOP3Server1DELE(ASender: TIdCommand; AMessageNum: Integer);
    procedure IdPOP3Server1Exception(AThread: TIdPeerThread;
      AException: Exception);
    procedure IdPOP3Server1LIST(ASender: TIdCommand; AMessageNum: Integer);
    procedure IdPOP3Server1QUIT(ASender: TIdCommand);
    procedure IdPOP3Server1RETR(ASender: TIdCommand; AMessageNum: Integer);
    procedure IdPOP3Server1RSET(ASender: TIdCommand);
    procedure IdPOP3Server1STAT(ASender: TIdCommand);
    procedure IdPOP3Server1TOP(ASender: TIdCommand; AMessageNum,
      ANumLines: Integer);
    procedure IdPOP3Server1UIDL(ASender: TIdCommand; AMessageNum: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

//If user presses exit button close socket and exit
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
 if IdPop3Server1.Active=True then
  IdPop3Server1.Active:=False;
 Application.Terminate;
end;

procedure TfrmMain.IdPOP3Server1Connect(AThread: TIdPeerThread);
begin
// When a clinet connects to our server we must reply with +OK, or -ERR
// Set this via Greeting.Text at runtime, or possibly in OnBeforeCommandHandler?
// You may also wish to initialise some global vars here, set the POP3 box to locked state, etc.
end;

//Activate the server socket when activating server main window.
procedure TfrmMain.FormActivate(Sender: TObject);
begin
 IdPop3Server1.Active:=True;
end;

// This is where you validate the user/pass credentials of the user logging in
procedure TfrmMain.IdPOP3Server1CheckUser(AThread: TIdPeerThread;
  LThread: TIdPOP3ServerThread);
begin
// LThread.Username -> examine this for valid username
// LThread.Password -> examine this for valid password
// if the user/pass pair are valid, then respond with
// LThread.State := Trans
// to reject the user/pass pair, do not change the state
 LThread.State := Trans;
end;

// This is where the client program issues a delete command for a particular message
procedure TfrmMain.IdPOP3Server1DELE(ASender: TIdCommand;
  AMessageNum: Integer);
begin
// if the message has been deleted, then return a success command as follows;
// ASender.Thread.Connection.Writeln('+OK - Message ' + IntToStr(AMessageNum) + ' Deleted')
// otherwise, if there was an error in deleting the message, or the message number
// did not exist in the first place, then return the following:
// ASender.Thread.Connection.Writeln('-ERR - Message ' + IntToStr(AMessageNum) + ' not deleted because.... [reason]')

// Usually, messages are deleted after being retrieved from pop3 server
// This is done when client sents DELE command after retrieving a message
// Client command is something like DELE 1 which means delete message 1

// Note, you should not actually delete the message at this point, just mark it as deleted.
// Deletions should be handled at the QUIT event.

 ASender.Thread.Connection.WriteLn('+OK message 1 deleted');
end;

procedure TfrmMain.IdPOP3Server1Exception(AThread: TIdPeerThread;
  AException: Exception);
begin
// Handle any exceptions given by the thread here
end;

//before retrieving messages, client asks for a list  of messages
//Server responds with a +OK followed by number of deliverable
//messages and length of messages in bytes. After this a separate
//list of each message and its length is sent to client.
//here we have only one message, but we can continue with message
//number and its length , one per line and finally a '.' character.
//Format of client command is  LIST
procedure TfrmMain.IdPOP3Server1LIST(ASender: TIdCommand;
  AMessageNum: Integer);
begin
// Here you return a list of available messages to the client
 ASender.Thread.Connection.WriteLn('+OK 1 40');
 ASender.Thread.Connection.WriteLn('1 40');
 ASender.Thread.Connection.WriteLn('.');
 // The trailing . line is IMPORTANT!!
end;

procedure TfrmMain.IdPOP3Server1QUIT(ASender: TIdCommand);
begin
// This event is triggered on a client QUIT (a correct disconnect)
// Here you should delete any messages that have been marked with DELE.

// NOTE: The +OK response is AUTOMATICALLY sent back to the client, and the connect dropped.
end;

procedure TfrmMain.IdPOP3Server1RETR(ASender: TIdCommand;
  AMessageNum: Integer);
begin
 // Client initiates retrieving each message by issuing a RETR command
 // to server. Server will respond by +OK and will continue by sending
 // message itself. Each message is saved in a database uppon arival
 // by smtp server and is now delivered to user mail agent by pop3 server.
 // Here we do not read mail from a storage but we deliver a sample
 // mail from inside program. We can deliver multiple mails using
 // this method.  Format of RETR command is something like
 // RETR 1 or RETR 2 etc.
 ASender.Thread.Connection.WriteLn('+OK 40 octets');
 ASender.Thread.Connection.WriteLn('From: [email protected]');
 ASender.Thread.Connection.WriteLn('To: [email protected] ');
 ASender.Thread.Connection.WriteLn('Subject: Hello ');
 ASender.Thread.Connection.WriteLn('');
 ASender.Thread.Connection.WriteLn('Hello world! This is email body.');
 ASender.Thread.Connection.WriteLn('.');
end;

procedure TfrmMain.IdPOP3Server1RSET(ASender: TIdCommand);
begin
// here is where the client wishes to reset the current state
// This may be used to reset a list of pending deletes, etc.
end;

procedure TfrmMain.IdPOP3Server1STAT(ASender: TIdCommand);
begin
// here is where the client has asked for the Status of the mailbox
//When client asks for a statistic of messages server will answer
//by sending an +OK followed by number of messages and length of them
//Format of client message is STAT
 ASender.Thread.Connection.WriteLn('+OK 1 40');
end;

procedure TfrmMain.IdPOP3Server1TOP(ASender: TIdCommand; AMessageNum,
  ANumLines: Integer);
begin
// This is where the cleint has requested the TOP X lines of a particular
// message to be sent to them
end;

procedure TfrmMain.IdPOP3Server1UIDL(ASender: TIdCommand;
  AMessageNum: Integer);
begin
// This is where the client has requested the unique identifier (UIDL) of each
// message, or a particular message to be sent to them.
end;

end.



В настройках TheBat указываю:
SMTP-сервер: 192.168.0.1
Почт.-сервер: 192.168.0.1
Пользователь: - вообще не понятно где его на сервере прописывать поэтому пустой
Пароль: - тоже соответственно пусто

Помогите пожалуйста, что делаю не так ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Letov
Дата 24.4.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



А если в настройках TheBat указать
SMTP-сервер: 127.0.0.1
Почт.-сервер: 127.0.0.1

или

SMTP-сервер: localhost
Почт.-сервер: localhost
?

Вдруг поможет...

Это сообщение отредактировал(а) Letov - 24.4.2008, 13:14


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
php
Дата 28.4.2008, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



>Letov
Нет это не помогло !
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
php
Дата 6.5.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Ну так что господа товарищи больше нет вариантов, у меня осталась последняя надежда на DNS сервер который идёт в поставке Indy10, или ещё могут быть какие то варианты ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Snowy
Дата 6.5.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Есть вариант. Причём один.
Написать SMTP сервер, а потом POP3 сервер.
А пытаться заставить работать примеры в качестве сервера - дохлый номер.
Они лишь демонстрируют, где и что нужно написать. И не являются серверами.
А, чтобы написать сервера, нужно хотя бы иметь представление о том, как они работают.
PM MAIL   Вверх
php
Дата 7.5.2008, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Блин опять давдцать пять начинается !!, а говорю что они должны работать для чего они тогда там нужны эти компоненты?? у кого-то же они работают или я не прав ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Snowy
Дата 7.5.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Компоненты реализуют только сетевую часть.
SMTP сервер принимает почту, POP3 раздаёт.
А вот что делать с почтой, где хранить, как пересылать, где база пользователей и т.д. - это уже задача программиста.
Видишь, примеры все в комментариях?
Там написано "тут сделать то-то, а тут это..."

А тестовый пример выполняет следующие действия:
SMTP: клиенту: "Ок, принял". На экран: "Пришло письмо от ...". Само письмо тут же уничтожается.
POP3: "Хочешь письмо? Ну лови: 'Hello world! This is email body.'

Так что снова повторюсь - сначала нужно понимать, как работает SMTP и POP3.
И добавлю - ты хоть код читай...
PM MAIL   Вверх
php
Дата 8.5.2008, 04:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Это всё понятно комментарии я читать умею даже на английском,
у меня загвоздка (может это ипокажется смешным даже) в имени почтового ящика которое идёт после знака @ это даже не имя а MX запись - DNS имя для расрознавания сервера откуда пришла, была получена почта. Он поэтому видимо и не отправляет т.к MX запись не задействована.. Давайте сначала разберёмся с отправкой писем с приёмом почты потом разберёмся, пока что хотябы, что-то одно нормально делалось Й
 
Так что вы скажете как её задать эту MX запись, включить DNS или что ??

Добавлено через 1 минуту и 5 секунд
Да и ещё 
SMTP сервер не принимает почту он её как раз раздаёт !!.
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Snowy
Дата 8.5.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Ты не поверишь, но SMTP сервер именно принимает почту.
А раздаёт POP3 сервер.
Клиент же наоборот - SMTP отправляет, а POP3 принимает.

Итак SMTP сервер.
К нему подключается SMTP клиент и передаёт письмо.
SMTP сервер его принял.
Всё. На этом функции SMTP сервера закончились и начинаешь действовать ты.
Типичная картина действий:
Анализируем домен. Если наш, проверяем наличие данного ящика. Ящик есть - кладём письмо в него.
Реализация хранения - дело программиста. Если такого ящика нет - отправляем в ответ ошибку.
Далее. Домен не наш. Значит мы relay сервер. Просто передаём это письмо нашему SMTP клиенту, который его доставит по адресу.
Под нашим клиентом, я подразумеваю SMTP клиент, встроенный в наш сервер. Именно SMTP клиент рассылает почту. SMTP сервер только принимает. Поэтому, для сквозного проброса несвоей почты, в него встраивается SMTP клиент, который и пошлёт письмо дальше другому SMTP серверу.

Букварь окончен. Сначала изучи вопрос и принципы работы почтовых серверов и клиентов.
В указанном выше примере нет никаких намёков на SMTP клиент. Поэтому сервер никому и ничего не отправляет - он сервер. Он только отвечает на запросы, а не инициирует их.
Для инициации запросов, ему необходим клиентский функционал.
И есть в DNS MX или нет - это уже твоя задача. Будешь ты отсылать по DNS или через relay - это уже нужно реализовывать самому. Ручками. TIdSMTPClient.
PM MAIL   Вверх
php
Дата 12.5.2008, 03:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Ну вот теперь картина более менее прояснилась, а то всё вокруг да около,
неужели нельзя сразу так ответить было ??, а то я целый месяц "мозги пропарил" и себе и вам !

Но вопрос пока не решён..
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1210 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.