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(SMTPOnko 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.listMikä 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.ReadToEndTextBox1 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.