Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C, VB.NET: [VB2008] gmailista sähköpostin hakeminen ja näyttäminen

Sivun loppuun

jokke568 [15.02.2009 20:47:03]

#

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

K_L [16.02.2009 08:40:16]

#

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/pop3telnet.htm osoitteesta.

Googlen tapauksessa pitää muistaa, että pop-palvelin vaatii SSL-suojauksen.

jokke568 [16.02.2009 22:56:31]

#

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

Grez [16.02.2009 23:22:18]

#

Oot ihan hakoteillä ja muutenkin SMTP:llä voit lähettää postia, et hakea sitä.

jokke568 [16.02.2009 23:38:46]

#

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 ?

jokke568 [17.02.2009 00:50:50]

#

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

K_L [17.02.2009 10:14:22]

#

Koitappa debugata siten, että luet joka writelinen jälkeen vastauksen erikseen.
Lue myös ennen USERin lähettämistä palvelimen tervehdys.

jokke568 [17.02.2009 10:53:24]

#

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

K_L [17.02.2009 12:29:10]

#

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.

Grez [17.02.2009 13:09:51]

#

Googlella löytää muuten runsaasti valmiita esimerkkikoodeja POP3-clientin toteuttamisesta VB.Netillä...

jokke568 [17.02.2009 14:46:45]

#

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?

Grez [17.02.2009 15:16:21]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta