Differenze tra le versioni di "Leggere la posta elettronica con POP3 e SSL mediante le funzioni esterne del API di Libcurl"
Riga 3: | Riga 3: | ||
Per poter fruire in Gambas delle risorse della libreria ''Libcurl'', è necessario avere installata nel sistema e richiamare la libreria dinamica condivisa: "''libcurl.so''" | Per poter fruire in Gambas delle risorse della libreria ''Libcurl'', è necessario avere installata nel sistema e richiamare la libreria dinamica condivisa: "''libcurl.so''" | ||
− | Va sottolineato che nel 3° argomento della funzione esterna ''curl_easy_setopt( )'' - immediatamente dopo l'impostazione della url del Server della posta elettronica e separato da uno ''slash'' - va definito il numero d'indice della e-mail ricevuta che si intende leggere. Tale indice inizia da 1 ed il suo ordine crescente corrisponde | + | |
+ | Va sottolineato che nel 3° argomento della funzione esterna ''curl_easy_setopt( )'' - immediatamente dopo l'impostazione della url del Server della posta elettronica e separato da uno ''slash'' - va definito il numero d'indice della e-mail ricevuta che si intende leggere. Tale indice inizia da 1 ed il suo ordine crescente corrisponde alle e-mail più recenti (pertanto impostando il numero 1 si otterrà la lettura della e-mail più vecchia presente nella propria casella di posta elettronica. | ||
Eventuali allegati all'email saranno mostrati in formato ASCII secondo la codifica [https://it.wikipedia.org/wiki/Base64 Base64]. | Eventuali allegati all'email saranno mostrati in formato ASCII secondo la codifica [https://it.wikipedia.org/wiki/Base64 Base64]. |
Versione delle 08:03, 2 set 2016
Libcurl è una libreria gratuita lato-client di trasferimento dati con la sintassi URL, capace di supportare diversi protocolli. Essa consente - fra l'altro - di leggere la posta elettronica ricevuta.
Per poter fruire in Gambas delle risorse della libreria Libcurl, è necessario avere installata nel sistema e richiamare la libreria dinamica condivisa: "libcurl.so"
Va sottolineato che nel 3° argomento della funzione esterna curl_easy_setopt( ) - immediatamente dopo l'impostazione della url del Server della posta elettronica e separato da uno slash - va definito il numero d'indice della e-mail ricevuta che si intende leggere. Tale indice inizia da 1 ed il suo ordine crescente corrisponde alle e-mail più recenti (pertanto impostando il numero 1 si otterrà la lettura della e-mail più vecchia presente nella propria casella di posta elettronica.
Eventuali allegati all'email saranno mostrati in formato ASCII secondo la codifica Base64.
Mostriamo un esempio pratico:
Library "libcurl" Private Const CURLOPT_VERBOSE As Integer = 41 Private Const CURLOPT_URL As Integer = 10002 Private Const CURLOPT_USERNAME As Integer = 10173 Private Const CURLOPT_PASSWORD As Integer = 10174 ' CURL *curl_easy_init(void) ' Start a libcurl easy session. Private Extern curl_easy_init() As Pointer ' CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...) ' Set options for a curl easy handle Private Extern curl_easy_setopt(curl As Pointer, option As Integer, opts As String) As Integer ' CURLcode curl_easy_perform(CURL *curl) ' Perform a blocking file transfer. Private Extern curl_easy_perform(curl As Pointer) As Pointer ' const char *curl_easy_strerror(CURLcode) ' Turn a CURLcode value into the equivalent human readable error string. Private Extern curl_easy_strerror(CURLcode As Integer) As String ' void curl_easy_cleanup(CURL *curl) ' End a libcurl easy handle. Private Extern curl_easy_cleanup(curl As Pointer) Public Sub Main() Dim cu As Pointer Dim ris As Integer Dim l As Long cu = curl_easy_init() If cu = 0 Then Error.Raise("Impossibile inizializzare la libreria 'curl' !") ' Imposta il nome dell'utente dell'account email e la sua password: curl_easy_setopt(cu, CURLOPT_USERNAME, "nome_utente") curl_easy_setopt(cu, CURLOPT_PASSWORD, "password_utente") ' Imposta l'URL del mailserver dell'utente, nonché l'e-mail ricevuta: in questo caso sarà mostrato ' il testo della seconda email più antica presente nella casella di posta elettronica. curl_easy_setopt(cu, CURLOPT_URL, "pop3s://mainserver.esempio.it/2") ' Procede alla lettura della e-mail prescelta: ris = curl_easy_perform(cu) If ris <> 0 Then Error.Raise("Impossibile leggere la posta elettronica: " & curl_easy_strerror(i)) ' Va in chiusura: curl_easy_cleanup(cu) End