unit AsyncServerMain; interface {$I RemObjects.inc} uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, uROClient, uROBINMessage, uROClientIntf, uROServer, uROPoweredByRemObjectsButton, uROIndyUDPServer, uROPostMessage, uROIndyEmailServer, uROIndyTCPServer, uROIndyHTTPServer; type TAsyncServerMainForm = class(TForm) ROMessage: TROBINMessage; ROServer: TROIndyHTTPServer; RoPoweredByRemObjectsButton1: TRoPoweredByRemObjectsButton; ROIndyUDPServer1: TROIndyUDPServer; bSetupEmailSettings: TButton; ROEmailServer: TROEmailServer; PostMessage: TROPostMessage; procedure FormCreate(Sender: TObject); procedure bSetupEmailSettingsClick(Sender: TObject); procedure ROEmailServerException(aSender: TObject; aExceptionClass: TClass; const aExceptionMessage: String); procedure FormClose(Sender: TObject; var Action: TCloseAction); private procedure SetupEmailServer; end; var AsyncServerMainForm: TAsyncServerMainForm; implementation uses async_EmailSettings, IdSMTP, IdStack; {$R *.DFM} procedure TAsyncServerMainForm.FormCreate(Sender: TObject); begin async_EmailSettings.LoadEmailSettings; if POP3host = 'pop3host' then async_EmailSettings.SetupEmailSettings(False); SetupEmailServer; ROServer.Active := True; ROIndyUDPServer1.Active := True; ROEmailServer.Active:=True; end; procedure TAsyncServerMainForm.bSetupEmailSettingsClick(Sender: TObject); begin async_EmailSettings.SetupEmailSettings(False); SetupEmailServer; end; procedure TAsyncServerMainForm.ROEmailServerException(aSender: TObject; aExceptionClass: TClass; const aExceptionMessage: String); begin ShowMessage('There was a problem in the Email Server Thread:'#13#13 + aExceptionClass.ClassName + ': ' + aExceptionMessage); end; procedure TAsyncServerMainForm.SetupEmailServer; begin ROEmailServer.Active := False; ROEmailServer.ServerEmail := ServerEmail; {$IFDEF RemObjects_INDY8} ROEmailServer.Pop3Client.UserId := POP3UserName; ROEmailServer.SmtpClient.UserId := SMTPUserName; {$ELSE} ROEmailServer.Pop3Client.Username := POP3UserName; ROEmailServer.SmtpClient.Username := SMTPUserName; {$ENDIF} ROEmailServer.Pop3Client.Password := Pop3Password; ROEmailServer.Pop3Client.Host := POP3host; ROEmailServer.Pop3Client.Port := POP3Port; ROEmailServer.SmtpClient.Password := SMTPPassword; ROEmailServer.SmtpClient.Host := SMTPhost; ROEmailServer.SmtpClient.Port := SMTPPort; {$IFDEF RemObjects_INDY10C} if SMTPUserName <> '' then ROEmailServer.SmtpClient.AuthType := satDefault else ROEmailServer.SmtpClient.AuthType := satNone; {$ELSE} {$IFDEF RemObjects_INDY10} if SMTPUserName <> '' then ROEmailServer.SmtpClient.AuthType := atDefault else ROEmailServer.SmtpClient.AuthType := atNone; {$ELSE} if SMTPUserName <> '' then ROEmailServer.SmtpClient.AuthenticationType := atLogin else ROEmailServer.SmtpClient.AuthenticationType := atNone; {$ENDIF} {$ENDIF} ROEmailServer.Active := True; end; procedure TAsyncServerMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin ROEmailServer.Active := False; end; end.