Leggere la posta elettronica mediante le sole risorse di Gambas
Vai alla navigazione
Vai alla ricerca
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