external vdsinet.dll,Public Freeware Key|90257236

  DIALOG CREATE,SMTP-Server,-1,0,317,229
  DIALOG ADD,LIST,LIST1,8,8,304,144,DBLCLICK
  DIALOG ADD,EDIT,EDIT1,168,8,232,16
  DIALOG ADD,EDIT,EDIT2,208,8,232,16
  DIALOG ADD,BUTTON,BUTTON1,168,248,64,16,Send
  DIALOG ADD,TEXT,TEXT1,152,8,,,Send a command to the last sender:
  DIALOG ADD,TEXT,TEXT2,192,8,,,Address of the SMTP-server to send messages to:
  DIALOG SHOW
net socket,auto
net socket,port,25
net socket,vdsevents,vdsevents
net socket,server

:evloop
%%event = @event()
if @not(@null(%%event))  
  goto %%event
  end

%%data = @net(socket,data)

if @not(@null(%%data))
  list add,list1,C: %%data
  
  option fieldsep,@chr(32)
  parse "%%commando;%%par1;%%par2;%%par3",%%data
  
  if @equal(%%commando,HELO)
    net socket,sendid,@net(socket,senderid),250 OK@cr()@chr(10)
	list add,list1,S: 250 OK@cr()@chr(10)
	end
	
  if @equal(%%commando,EHLO)
    net socket,sendid,@net(socket,senderid),250 OK@cr()@chr(10)
	list add,list1,S: 250 OK@cr()@chr(10)
	end	
	
  if @equal(%%commando,MAIL)
    %%sender = @strdel(%%data,1,11)
	%%sender = @strdel(%%sender,@diff(@len(%%sender),1),@len(%%sender))	
	
    net socket,sendid,@net(socket,senderid),250 OK@cr()@chr(10)
	list add,list1,S: 250 OK@cr()@chr(10)
    end	
	
  if @equal(%%commando,RCPT)
    %%rcpt = @strdel(%%data,1,9)
	%%rcpt = @strdel(%%rcpt,@diff(@len(%%rcpt),1),@len(%%rcpt))
    net socket,sendid,@net(socket,senderid),250 OK@cr()@chr(10)
	list add,list1,S: 250 OK@cr()@chr(10)
    end		
	
  if @equal(%%commando,DATA)
    if @not(@null(%%rcpt))
      net socket,sendid,@net(socket,senderid),354 OK@cr()@chr(10)
	  list add,list1,S: 354 OK@cr()@chr(10)
	else
	  net socket,sendid,@net(socket,senderid),503@cr()@chr(10)
	  list add,list1,S: 503@cr()@chr(10)
	  end
	end
	
  if @equal(%%commando,From:)
     if @equal(@substr(%%data,@diff(@len(%%data),2),@diff(@len(%%data),2)),@chr(46))
	   net socket,sendid,@net(socket,senderid),250 Message accepted for delivery@cr()@chr(10)
       list add,list1,S: 250 Message accepted for delivery@cr()@chr(10)

       list create,2
       list assign,2,%%data
       %%subject = @match(2,Subject:)
       %%subject = @item(2)
       %%subject = @strdel(%%subject,1,9)
       list close,2

       list create,2
	   list assign,2,%%data
	   
	   %%itemnumber = 0
	   repeat
	   option fieldsep,@chr(32)
	   parse "%%var1;%%var2;%%var3",@item(2,%%itemnumber)   
	   %%itemnumber = @succ(%%itemnumber)
	   until @equal(%%var1,Content-Type:)
	   
	   %%messagenumber = @strdel(%%var3,1,@pos(@chr(34),%%var3))
	   %%messagenumber = @strdel(%%messagenumber,@len(%%messagenumber),@len(%%messagenumber))
	   
	   %%beginlinemessage = @match(2,--)
	   %%beginlinemessage = @index(2)
         repeat
         %%message = %%message@cr()@chr(10)@next(2)
	     until @equal(@count(2),@index(2))
		 %%message = @strdel(%%message,@len(%%message),@len(%%message))
	   list close,2

rem --------- Put here some code to send the recieved mail to RCPT  -----
rem    %%sender   =  email of sender
rem    %%rcpt     =  email of receiver
rem    %%message  =  message

net smtp,recipients,clear
net smtp,recipients,add,%%rcpt
net smtp,message,clear
net smtp,subject,%%subject
net smtp,message,add,%%message
net smtp,header,clear
net smtp,header,add,Sended by: SMTP-Server
net smtp,from,%%sender
net smtp,reply,%%sender
net smtp,send,@dlgtext(edit2)
list add,list1,MESSAGE FROM %%sender SENDED BY @dlgtext(edit2)
	   end
	end
  end
goto evloop

:button1button
net socket,sendid,@net(socket,senderid),@dlgtext(edit1)
goto evloop
:button2button
goto evloop
:button3button
goto evloop

:network
goto evloop
:accept
net socket,sendid,@net(socket,senderid),220 OK@cr()@chr(10)
list add,list1,S: 220 OK@cr()@chr(10)
goto evloop
:closec
goto evloop
:error
goto evloop
            
:Close
exit  

:list1dblclick
clipboard set,@item(list1)
info @item(list1)
goto evloop