+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Dialogare con il server di posta elettronica

  1. #1
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Cerco di dialogare con il server di posta elettronica attraverso il protocollo imap e fin quì tutto bene,scarico la posta,leggo il messaggio etc.etc...vorrei visualizzare sulla listbox le risposte del server
    del tipo come foto allegata
    Nome:   connetti.JPG
Visite:  54
Grandezza:  20.5 KB
    e quando mi disconnetto
    Nome:   disconnetti.JPG
Visite:  52
Grandezza:  23.3 KB
    Per connessione e la disconnessione uso il protocollo POP3,di seguito il codice per la connessione
     
            ' Try
            Server = New TcpClient(ComboBox1.Text, portaricezione)
            NetStrm = Server.GetStream
            StreamSSL = New SslStream(NetStrm)
            StreamSSL.AuthenticateAsClient(ComboBox1.Text)
            RdStrm = New StreamReader(StreamSSL)
            StatResp = RdStrm.ReadLine()
            ListBox1.Items.Clear()
            StatResp = Login(StreamSSL, "USER " & ComboBox2.Text) & vbCrLf
            ListBox1.Items.Add(StatResp)
            StatResp = Login(StreamSSL, "PASS " & ComboBox3.Text) & vbCrLf
            ListBox1.Items.Add(StatResp)
            StatResp = Login(StreamSSL, "STAT ") & vbCrLf
            ListBox1.Items.Add(StatResp)
            server_Stat = StatResp.Split(" ")
    
    di seguito la funzione Login

    Private Function Login(ByVal SslStrem As SslStream, ByVal Server_Command As String) As String
            Dim Read_Stream2 = New StreamReader(SslStrem)
            Server_Command = Server_Command + vbCrLf
            m_buffer = System.Text.Encoding.ASCII.GetBytes(Server_Command.ToCharArray())
            SslStrem.Write(m_buffer, 0, m_buffer.Length)
            Dim Server_Reponse As String
            Server_Reponse = Read_Stream2.ReadLine()
            Return Server_Reponse
        End Function
    
    e quì è tutto a posto ma se uso la stessa funzione Login con il protocollo imap
    dà errore.
    Codice per la connessione
     imap.ConnectSSL("imap.gmail.com")    ' or ConnectSSL
            imap.UseBestLogin("myaddress@gmail.com", "xxxxxx") ' password non reale
            imap.SelectInbox()
            Dim uids As List(Of Long) = imap.Search(Flag.Unseen)
            Dim infos As List(Of MessageInfo) = imap.GetMessageInfoByUID(uids)
            Dim uidList As List(Of Long) = imap.Search(Flag.Unseen)
            Dim testo As String = String.Empty
            Dim email As IMail = Nothing
            For Each uid As Long In uidList
                email = New MailBuilder() _
                .CreateFromEml(imap.GetMessageByUID(uid))
                ListBox1.Items.Add(email.Subject)
                For Each m As MailBox In email.From
                    ListBox2.Items.Add(m.Address & "=" & m.Name)
                Next
                ListBox3.Items.Add(email.Date)
                testo = email.Text + vbCrLf
                TextBox1.Text = testo
            Next
            'For Each mime As MimeData In email.Attachments
            'mime.Save("c:\" + mime.SafeFileName)
            ' Next
            imap.Close()
    
    scarico le mails se ve ne sono altrimenti mi disconnetto questo il codice

     btnConnetti.Enabled = True
            btnDisconnetti.Enabled = False
            StatResp = Login(StreamSSL, "QUIT ") & vbCrLf
            ListBox4.Items.Add(StatResp)
    
    questo l'errore:
    Nome:   login.JPG
Visite:  56
Grandezza:  54.6 KB
    Non riesco a capire...è la stessa funzione che uso con il protocollo POP3 ma con imap non funge...
    dove sbaglio?
    ℹ️ Leggi di più su sistemista ...

  2. #2
    Se ho capito bene, tu crei lo stream SSL usando il dialogo su protocollo POP e poi vorresti usare lo stesso stream aspettandoti un dialogo su protocollo IMAP.

    Non puoi usare spezzoni di comunicazione su protocollo POP e spezzoni di comunicazione su protocollo IMAP, sono 2 protocolli differenti che hanno meccanismi di dialogo differenti.

    Visto che stai usando dei componenti di terzi parti, in quei componenti c’è tutto quello che ti serve per il dialogo (magari esiste anche un metodo/proprietà che ti ritorna il flusso sottostante), altrimenti devi studiarti il protocollo IMAP ed implementare la comunicazione autonomamente con la classe TCPCLIENT
    ℹ️ Leggi di più su Fix ...

  3. #3
    Con POP3 sei tu a gestire il colloquio con TcpClient e SslStream.

    Con imap utilizzi la classe Imap del componente di terze parti che, al suo interno, gestisce il colloquio con il server.
    Se questo colloquio non viene esposto, tu non puoi ottenere tali informazioni. Ovviamente non puoi mischiare le cose.
    ℹ️ Leggi di più su AntonioG ...

  4. #4
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    ok.capito,pensavo era lo stesso,mi studierò metodi e proprietà del componente di terze parti.
    ℹ️ Leggi di più su sistemista ...

  5. #5
    dylan666 non è in linea Novello
    Un milione di anni fa per una esigenza simile usai questa DLL, so che già ne usi una ma se vuoi puoi dargli un occhio:
    https://www.limilabs.com/mail/samples

    Se vuoi provare la demo funziona perfettamente solo che ogni tanto mette "Please purchase a license" come oggetto delle email o mostra un pop-up

    EDIT:
    scusa, sono uno sciocco, vedo da qui che stai usando già questa libreria...
    https://masterdrive.it/visual-basic-...o-mail-103127/

    Sorry

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 6
    Ultimo Post: 14-07-2018, 15:02
  2. Posta Elettronica Bloccata
    Da AlbertoM nel forum Pausa caffè
    Risposte: 4
    Ultimo Post: 05-10-2013, 13:48
  3. PEC (Posta Elettronica Certificata)
    Da artemis79 nel forum Pausa caffè
    Risposte: 1
    Ultimo Post: 08-09-2010, 11:44
  4. Posta elettronica con Ubuntu
    Da ceklo nel forum Tutto Linux
    Risposte: 33
    Ultimo Post: 18-01-2010, 01:58
  5. Gestire la posta elettronica
    Da Bix Bicio nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 28-10-2005, 08:42