Gmail Checker

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Gmail Checker

Message par Parole De JOJO »

un code que j'ai peche sur le forum anglais, et j'ai un peu adapte
il marche tres bien pour gmail, pour l'instant il verifie seulement si il y a des nouveaux mails, mais je n'ai pas reussi a lire les mails entrants

Code : Tout sélectionner

Procedure gmail(user$,pass$,numfil,file.s)
  email$ = user$ + "%40gmail%2Ecom"
  len = 57 + Len(email$) + Len(pass$)
  
  If InitNetwork()
    *Buffer = AllocateMemory(3000)
    ConnectionID = OpenNetworkConnection("mail.google.com", 80)
    If ConnectionID
      If CreateFile(numfil,file)
        request$ = "POST https://www.google.com/accounts/ClientLogin HTTP/1.0" + Chr(10)
        request$ + "Content-type: application/x-www-form-urlencoded" + Chr(10)
        request$ + "Connection: keep-alive" + Chr(10)
        request$ + "Content-length: " + Str(len) + Chr(10) + Chr(10)
        request$ + "&Email=" + email$ + "&Passwd=" + pass$ + "&accountType=HOSTED_OR_GOOGLE&service=mail"
        SendNetworkString(ConnectionID, request$)
        Debug "Logging in.."
        Delay(2000)
        Repeat
          Event = NetworkClientEvent(ConnectionID)
          Select Event
            Case #PB_NetworkEvent_Data
              ReceiveNetworkData(ConnectionID, *Buffer, 3000)
              response$ = PeekS(*Buffer)
              FreeMemory(*Buffer) 
              *Buffer = AllocateMemory(3000)
              For x = 1 To CountString(response$, Chr(10))
                curline$ = StringField(response$, x, Chr(10))
                WriteString(numfil, curline$)
                If FindString(curline$, "Auth=", 0)
                  auth$ = "GX=" + Mid(curline$, 6)
                  Debug "sending request for mail feed.."
                  request$ = "GET /mail/feed/atom/ HTTP/1.1" + Chr(10)
                  request$ + "Host: mail.google.com" + Chr(10)
                  request$ + "Cookie: " + auth$ + Chr(10) + Chr(10)
                  SendNetworkString(ConnectionID, request$)
                  Delay(2000)         
                EndIf
              Next x
          EndSelect   
          
        Until Event = 0
        CloseFile(numfil)
      EndIf
    EndIf
  EndIf
  ProcedureReturn ConnectionID
EndProcedure


Procedure.s beet(t.s,debut.l,fir.s,sec.s)
  a.l=FindString(t,fir,debut)
  b.l=FindString(t,sec,debut)
  c.s=Mid(t,a+Len(fir),b-a-Len(fir))
  ProcedureReturn c
EndProcedure

Procedure readheaders(numfil.l,file.s,max.l)
  ReadFile(numfil,file)
  While Eof(numfil) = 0 
    t.s=ReadString(numfil)
    key.s=beet(t,1,"<",">")
    value.s=beet(t,1,"<"+key+">","</"+key+">")
    Select key
      Case "fullcount":num=Val(value)
        If num>max:num=max:EndIf:Dim mail.s(num,6)
      Case "entry":k+1
      Case "title"
        If k:mail(k,1)=value:EndIf
      Case "summary":mail(k,2)=value
      Case "author":p=1
      Case "contributor":p=2
      Case "/author","/contributor":p=0
      Case "name":mail(k,3+(-2+p*2))=value
      Case "email":mail(k,4+(-2+p*2))=value
    EndSelect
    If k>num:Break:EndIf
  Wend
  CloseFile(numfil)
  
  For k=1 To num
    tt.s="From : "+mail(k,3)+" <"+mail(k,4)+">"+Chr(10)
    tt+"To : "+mail(k,5)+" <"+mail(k,6)+">"+Chr(10)
    tt+"Title : "+mail(k,1)+Chr(10)
    tt+"Message : "+mail(k,2)+Chr(10)
    MessageRequester("Mail No "+Str(k)+"/"+Str(num),tt)
  Next
EndProcedure

user$ = InputRequester("Gmail","Username","")
pass$ = InputRequester("Gmail","Password","")

file.s="4.html"

If gmail(user$,pass$,0,file)
  readheaders(1,file,20)
;   DeleteFile(file)
EndIf
Dernière modification par Parole De JOJO le mar. 07/déc./2010 13:19, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Gmail Checker

Message par Backup »

..........
Dernière modification par Backup le sam. 01/oct./2011 11:05, modifié 1 fois.
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Gmail Checker

Message par Parole De JOJO »

Dobro a écrit :j'ai chez moi depuis de lustres un code qui regarde le nombre de message
de mon email , et qui utilise la synthese vocale pour me dire
qu'il y a X messages en attente

et qui me propose meme la possibilité de les lires ....

facile a faire
avec les fonctions mail de Purebasic , un timer, et la synthese vocale via ma lib :)
et... tu la partage?
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Gmail Checker

Message par Parole De JOJO »

code adapte pour lire les messages
mais... une fois passe en procedure, il ne marche plus
mystere
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Gmail Checker

Message par Backup »

Parole De JOJO a écrit :code adapte pour lire les messages
mais... une fois passe en procedure, il ne marche plus
mystere

de quoi tu parle ?
Répondre