AWPB-Tools

Just starting out? Need help? Post your questions and find answers here.
User avatar
captain_skank
Enthusiast
Enthusiast
Posts: 639
Joined: Fri Oct 06, 2006 3:57 pm
Location: England

AWPB-Tools

Post by captain_skank »

Any body use ( or used ) the AWPB-Tools library ??

I've had a look at it and it seems to do most of what I want - but I cant figure how to delete a mail using POP3.

Cheers
lule
User
User
Posts: 31
Joined: Fri Sep 17, 2010 8:22 pm

Re: AWPB-Tools

Post by lule »

hi,

http://www.purebasic.fr/english/viewtop ... 12&t=51959

HeX0R created a lib similar to AWPB. For deleting an email via pop3 :

Code: Select all

Procedure.i __POP3_DeleteMail(*THIS._POP3_MAIN_STRUCTURE_, Index.i)
   Protected Result, a$
   
   ;Mails will not get deleted immediately!
   ;They will be deleted, when sending a "QUIT" to the server.
   ;That means you could undo all of your DELE-Messages
   ;when sending a RSET before QUIT
   ;(See below procedure)
   
   If *THIS\ConnectionID = #Null
      *THIS\LastError = #POP3_ERROR_NO_CONNECTION
      ProcedureReturn 0
   ElseIf *THIS\MessageCount < Index Or Index < 1
      *THIS\LastError = #POP3_ERROR_INDEX_OUT_OF_BOUNDS
      ProcedureReturn 0
   EndIf
   
   If __POP3_Internal_SendString(*THIS, "DELE " + Str(Index) + #CRLF$) > 0
      a$ = __POP3_Internal_WaitForResponse(*THIS)
      If __POP3_Internal_CheckResponse(*THIS, a$)
         *THIS\LastResponse = Left(*THIS\LastResponse, Len(*THIS\LastResponse) - 3)
         Result             = #True
         *THIS\LastError    = #POP3_ERROR_NONE
      Else
         *THIS\LastError = #POP3_ERROR_UNABLE_TO_DELETE_MAIL
      EndIf
   Else
      *THIS\LastError = #POP3_ERROR_SENDING
   EndIf
   
   ProcedureReturn Result
EndProcedure
But he indicate Mails will not be deleted immediatly...., just after sending a quit to the server.

Code in AWPB-TOOLS :

Code: Select all

Procedure.i ____AWPB_POP3Client_DELE(*this.____AWPB_POP3Client, index.i)
  Protected res.i, retries.i, done.b

  retries = *this\Conn\Retries
  res     = #AWPB_POP3_ERR_FAIL
  done    = #False
  If *this\Conn\ConnID
    Repeat
      If ____NW_Execute(*this\Conn, "DELE " + Str(index), *this\Conn\Retries)
        Select *this\Conn\ResultCode
          Case #____NW_CD_OK:   res = #AWPB_POP3_ERR_NONE : done = #True
          Case #____NW_CD_ERR:  res = #AWPB_POP3_ERR_FAIL : done = #True
          Default:             res = #AWPB_POP3_ERR_FAIL : retries - 1
        EndSelect
      Else
        retries - 1
      EndIf
    Until done Or (retries <= 0)
  EndIf

  ProcedureReturn res
EndProcedure

Linux Mint 21.1 Vera base: Ubuntu 22.04 jammy.
PureBasic 6.10 LTS (Linux - x64)
Post Reply