Differenze tra le versioni di "Leggere la posta elettronica mediante le sole risorse di Gambas"

Da Gambas-it.org - Wikipedia.
Riga 47: Riga 47:
 
  <FONT Color=gray>' ''Mostra l'argomento della e-mail:''</font>
 
  <FONT Color=gray>' ''Mostra l'argomento della e-mail:''</font>
 
       Print "\e[1mArgomento: \e[21m "; .Subject
 
       Print "\e[1mArgomento: \e[21m "; .Subject
       Print "\n\e[1mTESTO: \e[21m \n"
+
       Print "\n--------------------------------------"
 +
      Print "\e[1mTESTO: \e[21m \n"
 
  <FONT Color=gray>' ''Legge il testo della prima parte della e-mail:''</font>
 
  <FONT Color=gray>' ''Legge il testo della prima parte della e-mail:''</font>
 
       Print .Part[0].Data
 
       Print .Part[0].Data
 
        
 
        
 
  <FONT Color=gray>' ''Verifica se c'è un file allegato. Se c'è, lo scarica:''</font>
 
  <FONT Color=gray>' ''Verifica se c'è un file allegato. Se c'è, lo scarica:''</font>
       If .Part[.Part.Count - 1].ContentDisposition Like "*attachment*" Then  
+
       If .Part[.Part.Count - 1].ContentDisposition Like "*attachment*" Then
 +
        Print "\n--------------------------------------"
 
         nomefile = .Part[.Part.Count - 1].FileName
 
         nomefile = .Part[.Part.Count - 1].FileName
 
         codifica = .Part[.Part.Count - 1].ContentEncoding
 
         codifica = .Part[.Part.Count - 1].ContentEncoding
Riga 59: Riga 61:
 
         dati_allegato = Scan(contenuto, "*" & idHeader & ">\n*")[1]
 
         dati_allegato = Scan(contenuto, "*" & idHeader & ">\n*")[1]
 
         decodifica = mm.Decode(dati_allegato, codifica)
 
         decodifica = mm.Decode(dati_allegato, codifica)
 +
        Print "\n\e[1mFile allegato: \e[21m "; nomefile
 
  <FONT Color=gray>' ''Salva il file allegato con il nome e nel percorso prescelti:''</font>
 
  <FONT Color=gray>' ''Salva il file allegato con il nome e nel percorso prescelti:''</font>
 
         File.Save("/tmp" &/ nomefile, decodifica)
 
         File.Save("/tmp" &/ nomefile, decodifica)
Riga 64: Riga 67:
 
      
 
      
 
     End With
 
     End With
 +
   
 +
<FONT Color=gray>' ''Effettua il logout da Server e si disconnette:''</font>
 +
    pop.Close()
 
      
 
      
 
  '''End'''
 
  '''End'''

Versione delle 15:21, 5 set 2016

Per leggere mediante le risorse di Gambas la propria posta elettronica, è necessario attivare i seguenti Componenti:

  • gb.net
  • gb.net.pop3
  • gb.mime


Mostriamo un esempio pratico, laddove:
- pop.host rappresenta il Server di posta elettronica dell'utente (ad esempio: pop.tiscali.it);
- pop.Port rappresenta la porta Porta POP3 con SSL del Server (ad esempio con Tiscali: 995);
- pop.User rappresenta l'identificativo della casella di posta elettronica dell'utente (esempio: identificativo@tiscali.it, ma anche più semplicemente: identificativo);
- pop.Password rappresenta la password dell'utente per accedere alla sua casella di posta elettronica.

Public Sub Main()
 
 Dim pop As New Pop3Client
 Dim mm As Mime
 Dim mimess As MimeMessage
 Dim nomefile, dati_allegato, idHeader As String
 Dim contenuto, decodifica As String
 Dim email, codifica As Integer
 
   With pop
     .Host = "pop.server.xx"
     .Port = numero_porta
     .User = "identificativo_utente"
     .Password = "password"
     .Encrypt = Net.SSL
     .Debug = False
     .Open()
   End With
 
' Imposta il numero d'indice (che ha inizio da zero) della e-mail ricevuta da leggere:
   email = 4
       
' Controlla che il numero d'indice impostato corrisponda ad un e-mail esistente:
   If email > pop.Count - 1 Then
     Print "\n\e[5mIl numero di e-mail scelto è superiore a quello delle e-mail effettivamente presenti !" 
     Quit
   Endif
 
   Print "===== E-MAIL RICEVUTA n. "; email + 1; " =====\n"
   With mimess = New MimeMessage(pop[email].Text)
' Mostra il mittente della e-mail ed il suo indirizzo:
     Print "\e[1mMittente:  \e[21m "; .Sender
     Print "\e[1mTo:        \e[21m "; .To
     If Not IsNull(.Cc) Then Print "\e[1mCc:        \e[21m "; .Cc
     If Not IsNull(.BCc) Then Print "\e[1mBcc:       \e[21m "; .BCc
' Mostra l'argomento della e-mail:
     Print "\e[1mArgomento: \e[21m "; .Subject
     Print "\n--------------------------------------"
     Print "\e[1mTESTO: \e[21m \n"
' Legge il testo della prima parte della e-mail:
     Print .Part[0].Data
     
' Verifica se c'è un file allegato. Se c'è, lo scarica:
     If .Part[.Part.Count - 1].ContentDisposition Like "*attachment*" Then
       Print "\n--------------------------------------"
       nomefile = .Part[.Part.Count - 1].FileName
       codifica = .Part[.Part.Count - 1].ContentEncoding
       idHeader = .Part[.Part.Count - 1].ContentId
       contenuto = .Part[.Part.Count - 1].ToString()
       dati_allegato = Scan(contenuto, "*" & idHeader & ">\n*")[1]
       decodifica = mm.Decode(dati_allegato, codifica)
       Print "\n\e[1mFile allegato: \e[21m "; nomefile
' Salva il file allegato con il nome e nel percorso prescelti:
       File.Save("/tmp" &/ nomefile, decodifica)
     Endif
   
   End With
   
' Effettua il logout da Server e si disconnette:
   pop.Close()
    
End