Apua viisaat ja taitavat!
Kuinka saan haettua gmailiin tulleen spostin ja näytettyä sen textboxissa.
imports Systen.net.mail ja smtpClienttia käyttäen?
Kiitos etukäteen
Itse käytän TcpClienttiä (.net 1.1) postin lukemiseen pop-palvelimelta.
Pitää vain avata yhteys TcpClient(server, port), ja sitten hyödyntäen vaikka StreamReaderia ja StreamWriteria lukea ja käskyttää palvelinta.
Pop-palvelinhan tarvittavat komennot löydät vaikka http://pages.prodigy.net/michael_santovec/
Googlen tapauksessa pitää muistaa, että pop-palvelin vaatii SSL-suojauksen.
Kiitos K L
Mutta, ei mee mulle oikein jakeluun kun ei kokemusta oikein ole fiksusti ohjelmoinnista. Löytyisikö rautalankaa...
Dim SMTP As New SmtpClient("Smtp.gmail.com") SMTP.Port = 587 SMTP.EnableSsl = True SMTP.Credentials = New System.Net.NetworkCredential("mun@gmail", "salasana") Dim StreamToDisplay As StreamReader StreamToDisplay = New StreamReader(SMTP
Onko ihan hakuteillä? Miten käskytän palvelinta? Menee vissiin vikaan, smtp taisi olla lähettävä palvelin ja pop hakeva, vai miten se nyt oli?
No, tossa nyt toi räpellys. Streamreaderin käyttö ihan utopiaa, myöskin..
Kiitos
J
Oot ihan hakoteillä ja muutenkin SMTP:llä voit lähettää postia, et hakea sitä.
Moi Grez
Löysin tämmöisen esimerkin:
Dim mail as New Pop3mail mail.connect("mail.gmail.com","username","password") For Each msg as pop3mail.pop3message in Mail.list
Mikä namespace pitää lisätä ja importata, että tunnistaa pop3maili :in ?
Jee, edistystä???
Nyt on suunta vissiin vähän oikeampi...
Dim TcpClient As New TcpClient TcpClient.Connect("pop.gmail.com", 995) Dim sslStream As New System.Net.Security.SslStream(TcpClient.GetStream) sslStream.AuthenticateAsClient("pop.gmail.com") Dim sw As New System.IO.StreamWriter(SslStream) Dim reader As New System.IO.StreamReader(sslStream) sw.WriteLine("USER mun@gmail.com") sw.Flush() ' lähetä komento sw.WriteLine("PASS salasana") sw.Flush() sw.WriteLine("RETR 1") sw.Flush() sw.WriteLine("Quit ") sw.Flush() TextBox1.Text = reader.ReadToEnd
TextBox1 kenttään tulee teksti "+OK Gpop ready for requests from 88.xxx.xxx.xxx e11pf8958091fga.10"
Miten tuosta koodista jatketaan sillein, että saan textbox kenttään emailin sisällön....
t. J
Koitappa debugata siten, että luet joka writelinen jälkeen vastauksen erikseen.
Lue myös ennen USERin lähettämistä palvelimen tervehdys.
Kiitos K L,
Mutta voisitko vähän tarkentaa...
Sw.writeline( ) ' tällä kirjoitan komennon
Sw.flush , ja tää ilmeisesti lähettää sen
Vai?
Mihin vastaus tulee? Reader.readtoend vai?
Miten saan vastaukset näkymään esim msgboxiin?
Ymmärränkö väärin, mutta eikö "+OK Gpop ready jne jne." ole palvelimen tervehdys?
Tää on uutta mulle, joten voisitko vääntää rautalangasta...
Kiitos,
j
Uskoisin että tuo Gpop on nimenomaan palvelimen tervehdys.
Toivottavasti en puhu paljoa pa:ta, mutta omassa softassani, luen vastaukseni pop3-palvelimelta rivi kerrallaan.
Tyyliin send USER, read response line, send PASS, read response line ja niin edelleen. RETR komennolla luen rivi kerrallaan kunnes pääsen viestin loppuun.
Viesti tallennetaan muuttujaan jatkokäsittelyä varten.
Googlella löytää muuten runsaasti valmiita esimerkkikoodeja POP3-clientin toteuttamisesta VB.Netillä...
string str = string.Empty; string strTemp = string.Empty; while ((strTemp = reader.ReadLine()) != null) { // find the . character in line if (strTemp == ".") { break; } if (strTemp.IndexOf("-ERR") != -1) { break; } str += strTemp; } Response.Write(str); Response.Write("<BR>" + "Congratulation.. ....!!! You read your first gmail email ") } catch (Exception ex) { Response.Write(ex.Message); } }
Osaako joku kääntää C:stä VB:lle ylläolevan?
Toi on jotain epäkieltä. Vähän näyttä C#, mutta siinä on catch ilman try:ta ja yhden Response.Write ... rivin lopusta puuttuu ;, joten ei kyllä käännyy C#:lla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.