Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Winsock

Postades av 2002-04-25 10:21:31 - Johan Andersson, i forum internet, Tråden har 41 Kommentarer och lästs av 1275 personer

har prövat med denna kod från Pellesoft:

Option Explicit

Public Sub cmdMail_Click()
Txtmail.Text = "Ansluter till mailen..." + vbCrLf
sckmail.Close
sckmail.RemoteHost = "****" 'Istället för "server" skriver du dit din mailserver
sckmail.RemotePort = 110
sckmail.Connect
End Sub
Private Sub sckmail_Connect()
'**** = Secret Information
'Istället för "user" skriver du ditt användarnamn
sckmail.SendData ("****) " + "****)" + vbCrLf)

'Istället för "pass" skriver du ditt lösenord
sckmail.SendData ("****" + "12345" + vbCrLf)
sckmail.SendData ("quit" + vbCrLf)
End Sub

Private Sub sckmail_DataArrival(ByVal bytesTotal As Long)
Dim A As String
sckmail.GetData A
Txtmail.Text = Txtmail.Text + A
End Sub

Men jag får bara: -ERR Unknown Command
-ERR Unknown Command
Och jag vet ej varför, snälla hjälp mig någon som kan WinSock



Svara

Sv: Winsock

Postades av 2002-04-25 11:22:03 - Johan Djupmarker

såhär ska det nog vara... denna koden (med den andra) gör iofs inget mer än att logga in och logga ut...

<code>
Private Sub sckmail_Connect()
'**** = Secret Information
'Istället för "user" skriver du ditt användarnamn
sckmail.SendData ("user " + "mittnamn" + vbCrLf)

'Istället för "pass" skriver du ditt lösenord
sckmail.SendData ("pass" + "mittlösen" + vbCrLf)
sckmail.SendData ("quit" + vbCrLf)
End Sub
</code>

/Johan


Svara

Sv: Winsock

Postades av 2002-04-26 08:38:04 - Johan Andersson

Har prövat JohanD,s förslag och det fungerade med EN ändring
på raden: sckmail.SendData ("Pass" + "Lösenord" + vbCrLf)
den skulle tydeligen vara: sckmail.SendData ("Pass " + "Lösenord" + vbCrLf).
Vet ej om JohanD har glömt den eller något men nu så kopplar den upp mit servern och ja, sen gör den ige mer ;=(.
Jag har försökt få en att kolla om jag har någe nytt mail, har skickat till mig själv men mitt epost program säger till när jag får mail, vet inte om det är det som är kuxet.

Hoppas på nya svar.

/Demonen


Svara

Sv: Winsock

Postades av 2002-04-26 09:09:35 - Johan Djupmarker

Man kan inte se allt...

/Johan


Svara

Sv: Winsock

Postades av 2002-04-26 13:49:23 - Jonas Gauffin

felen du får gäller in winsock utan POP3 protokollet.

för att så om du har några mail måste du sända följande kommando:
STAT

mer info:
http://www.vbip.com/winsock/winsock_pop3.asp


Svara

Sv: Winsock

Postades av 2002-05-02 10:38:06 - Johan Andersson

Om man lägger denna kod i den knapp som ansluter hämtar den det mail som har det nummer som man anger:
sckmail.SendData ("RETR 1 ")

Nu vill jag att den ska ta hem ALLA medelanden, men vet hur man gör :(
)

Hade tänkt mig något likande som att om man säder:
SckMail.SendData ("STAT ") så får man upp detta: +Ok 4 200
Det menas med att man ha 4 medelanden med sammalagdt 200 minnes plats
jag tänkte att man kunde ta bort allt utom 4,ran så att man kan göra en for i loop som tar hem alla medelanden
Men vet ej hur man gör, om man gör det med selstart eller ej.

Snälla, hjälp mig (IGEN
/Demonen


Svara

Sv: Winsock

Postades av 2002-05-02 11:03:37 - Johan Djupmarker

Om du har en sådan sträng får du fram fyran såhär:

antal=Split(svar, " ")(1)

/Johan


Svara

Sv: Winsock

Postades av 2002-05-02 12:39:52 - Johan Andersson

Förstår ej JohanD inlägg.

Ett tilläg:

Hur tar man hem alla nedelanden som man har.
Med ovanstående kod eller den som jag har så tas bara det nummer som jag avger, jag vill att den ska ta alla.

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-02 12:55:14 - Johan Djupmarker

Om du först skickar STAT får du ett svar av typen "+Ok 4 200", sedan kör du "antal=Split(svar, " ")(1)", den plockar ut antalet meddelanden, i detta fallet 4. Sedan får du köra RETR 1, RETR 2 osv tills du har plockat hem så många som svar anger.

/Johan


Svara

Sv: Winsock

Postades av 2002-05-02 13:25:00 - Johan Andersson

Fick felmeddelande: Subscript out of range

antal=Split(svar, " ")(1)",

Vad är antal och svar för variabel



/Demonen


Svara

Sv: Winsock

Postades av 2002-05-02 13:32:28 - Johan Djupmarker

Troligtvis innehåller varibalen svar inte något, den ska innehålla svaret du får från servern (t.ex. "+OK 4 200").

/Johan


Svara

Sv: Winsock

Postades av 2002-05-02 13:33:03 - Johan Andersson

Hur får man den att hamna i "Svar"


/Demonen


Svara

Sv: Winsock

Postades av 2002-05-02 14:37:09 - Johan Djupmarker

Om du använder den koden du har där uppe kan du göra såhär, svar är en global variabel alltså:

<code>
Dim Svar As String
Private Sub sckmail_DataArrival(ByVal bytesTotal As Long)
sckmail.GetData Svar
Txtmail.Text = Txtmail.Text + Svar
End Sub
</code>

/Johan


Svara

Sv: Winsock

Postades av 2002-05-03 08:06:04 - Johan Andersson

Det hamnar inget i varken svar eller antal :(

Så här ser koden ut för DataArrival på winsock kontrolen:

Private Sub sckmail_DataArrival(ByVal bytesTotal As Long)
Dim A As String
sckmail.GetData A
sckmail.GetData Svar
Txtmail.Text = Txtmail.Text + A
Txtmail.Text = Txtmail.Text & vbCrLf & "---------- Nytt medelande ----------" & vbCrLf & vbCrLf


'sckmail.GetData A
'Text1.Text = A

End Sub

Vet ej om jag har lagt det del men.....
Tacksam för svar :)

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-03 09:08:55 - Johan Djupmarker

Jag är tveksam till att du kan köra GetData 2 ggr, testa såhär istället:

Private Sub sckmail_DataArrival(ByVal bytesTotal As Long)
Dim A As String
sckmail.GetData A
Svar = A
Txtmail.Text = Txtmail.Text + A
Txtmail.Text = Txtmail.Text & vbCrLf & "---------- Nytt medelande ----------" & vbCrLf & vbCrLf


'sckmail.GetData A
'Text1.Text = A

End Sub


/Johan


Svara

Sv: Winsock

Postades av 2002-05-03 09:23:58 - Johan Andersson

nu hamnar och en del annat först: +Ok 4 200 i svar men får fortfarande fel på antal=Split(svar, " ")(1)",

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-03 10:29:11 - Johan Andersson

Här är hela koden:
Option Explicit
Dim nummer
Dim svar As String
Dim antal
Dim HamtarLista As Boolean
Public Sub cmdMail_Click()
Txtmail.Text = "Ansluter till mailen..." + vbCrLf
sckmail.Close
sckmail.RemoteHost = txtMailServer.Text 'Istället för "server" skriver du dit din mailserver
sckmail.RemotePort = 110
sckmail.Connect
'Timer1.Enabled = True

End Sub

Private Sub Command1_Click()
nummer = InputBox("Ange nummer", "Nummer")
If nummer = "" Then
MsgBox "Du måste ange ett nummer", vbInformation, "Ange nummer"
Exit Sub
Else
'For nummer = 1 To sckmail.RemotePort

getmail

'Next nummer
End If
End Sub

Private Sub Command3_Click()
Dim svar As String
svar = "+Ok 15 200"
MsgBox Split(svar, " ")(1)

MsgBox antal
MsgBox svar
End Sub

Private Sub sckmail_Connect()
'**** = Secret Information
'Istället för "user" skriver du ditt användarnamn
sckmail.SendData ("user " + Txtanvändarnamn.Text + vbCrLf)
'Istället för "pass" skriver du ditt lösenord
sckmail.SendData ("pass " + txtpass.Text + vbCrLf)

Command1.Enabled = True
'sckmail.SendData ("stat ")
' sckmail.SendData ("quit" + vbCrLf)
End Sub

Private Sub sckmail_DataArrival(ByVal bytesTotal As Long)
Dim A As String



sckmail.GetData A



Txtmail.Text = Txtmail.Text + A
Txtmail.Text = Txtmail.Text & vbCrLf & "---------- Nytt medelande ----------" & vbCrLf & vbCrLf


sckmail.GetData A
Text1.Text = A

End Sub


Private Sub getmail()
Txtmail.Text = ""


sckmail.SendData ("RETR " & nummer)

sckmail.SendData ("quit" + vbCrLf)
End Sub

Private Sub Timer1_Timer()

Timer1.Enabled = False
End Sub

Private Sub txtpass_Change()
cmdmail.Enabled = True
If txtpass.Text = "" Then cmdmail.Enabled = False
End Sub
Private Sub GetStat()
'Dim A As String
' sckmail.GetData A
Text1.Text = ""

antal = Split(svar, " ")(1)
'Text1.Text = Text1.Text + A

End Sub


/Demonen


Svara

Sv: Winsock

Postades av 2002-05-03 12:50:31 - Johan Djupmarker

Jag har ingen möjlighet att testa nu, men du måste alltså kontrollera svar direkt efter att du har skickat STAT. Jag har ett fungerande exempel du kan få kolla på, ska försöka att posta det här när jag kommer hem.

/Johan


Svara

Sv: Winsock

Postades av 2002-05-03 17:33:34 - Johan Djupmarker

Denna koden fungerar utmärkt för mig, den kontrollerar om det finns några nya mail med det intervall man ställer in på timern... Skapa ett formulär med en textbox (Text1 Multiline=true), en winsock-kontroll (Winsock1) och en timer (Timer1). När du tittar på denna kanske du förstår hur du ska göra för att hämta mailen också...

<code>
Option Explicit
Dim AnvNamn As String
Dim Pass As String
Dim MailServer As String

Dim omg As Integer
Dim SenastAntal As Integer


Private Sub Form_Load()
SenastAntal = 0

AnvNamn = "johan" 'användarnamn på mailservern
Pass = "xxx" 'lösenord
MailServer = "mail.domän.se" 'mailserver

End Sub

Private Sub Timer1_Timer()
omg = 1
txtMail.Text = "Ansluter till mailservern..." + vbCrLf
Winsock1.Close
Winsock1.RemoteHost = MailServer
Winsock1.RemotePort = 110
Winsock1.Connect
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a As String
Dim antal As Integer

Winsock1.GetData a
txtMail.Text = txtMail.Text + a

Select Case omg

Case 1
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("user " + AnvNamn + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 2
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("pass " + Pass + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 3
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("stat" + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 4
If Left(a, 3) = "+OK" Then
antal = Split(a)(1)
If antal > SenastAntal Then
MsgBox antal - SenastAntal & " nytt/nya mail!"
End If
SenastAntal = antal
Winsock1.SendData ("quit" + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 5
Winsock1.Close
End Select

End Sub
</code>


/Johan


Svara

Sv: Winsock

Postades av 2002-05-06 08:07:21 - Johan Andersson

Är tacksam för all hjälp jag har fått, och JohanD, ska titta på din kod så fort jag kan, VB på denna dator har inte någon "Licens" eller vad det nu är, för WinSock, så på denna dator kan jag ej pröva den :(

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-08 08:42:31 - Raderat konto

Hej där, jag såg detta forum o tyckte det verka kul o testa saken, jag får ju ditt ex o funka, men det med att hämta mailen går inte med koden
"Winsock1.senddata ("RETR 1 ")" jag får "wrong protokol"

vad e felet tro?


Svara

Sv: Winsock

Postades av 2002-05-08 13:59:43 - Johan Djupmarker

Vart lägger du in Winsock1.senddata ("RETR 1 ")? Är du fortfarande ansluten när du gör det?

/Johan


Svara

Sv: Winsock

Postades av 2002-05-14 08:35:19 - Johan Andersson

Hej JohanD :)

Jag testade din kod genom att kopiera den till min bärbara och la den i VB och följde dina instruktioner, och kopierade den seden efter att jag har gjort den till en EXE-fil, men :(, den funkade inte tråkigt nog :( :( :( :( :( :( :( :( :( :(

Har inte tid att skriva mer nu, har liktion i skolan.

Hej då och ha det bra

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-14 15:12:44 - Raderat konto

Jag har testat lite men får inget o lira, jag e superdålig på winsock, den kod du la ut ovan funkar ju, kan du visa vart jag lägger in "RETR 1" nånstans?


Svara

Sv: Winsock

Postades av 2002-05-14 15:31:11 - Raderat konto

det löste sig, jag behövde lägga in " + vbCrLf" efter så funka det, men varför?


Svara

Sv: Winsock

Postades av 2002-05-14 15:37:13 - Johan Djupmarker

vbCrLf (=Enter) anger att kommandot är slut där och att det ska utföras.

/Johan


Svara

Sv: Winsock

Postades av 2002-05-14 15:40:14 - Raderat konto

jahaaa:) det förklarar ju lite, ok, nu kan jag ta emot mail, läsa dom men kan jag skicka mail på samma sätt? nått send-kommando?


Svara

Sv: Winsock

Postades av 2002-05-14 16:31:18 - Raderat konto

en fråga till: varför får jag inte hela mailet med "retr"? om jag har en timer som kollar så får jag ibland hela mailet o ibland en del.?? Om jag pausar eller kör en breakpoint så verkar det som den hinner med, men hur gör jag?


Svara

Sv: Winsock

Postades av 2002-05-14 17:23:24 - Johan Djupmarker

Om du använder en timer kanske den har för kort intervall så att den inte hinner klart innan?

För att skicka mail används inte POP3-protokollet utan SMTP, se denna tråden: http://www.pellesoft.nu/development/forum/view.asp?msgid=36669&forumid=2

/Johan


Svara

Sv: Winsock

Postades av 2002-05-15 08:51:24 - Raderat konto

Ok, tack, jag har visserligen timer men även om jag kör med manuell uppdatering så kommer tidvis bara delar av mailet...det verkar som att "dataArrival" inte e snabbt nog så att variabeln "a" i din kod inte hinner fyllas innan nästa kod körs. jag testade sleep-funktionen men då pausar jag ju hela programmet, jag vill testa o pausa enbart koden för att "fylla" variabeln "a", kan jag på något vis kontrollera när "a" är klar?
Förstår du vad jag menar nu?:)


Svara

Sv: Winsock

Postades av 2002-05-16 08:32:06 - Johan Andersson

Nu hakar jag på också, hos mig går den bara upp, talar om hur många mail jag har och loggar av.
Mer än så händer inte :(
Försöker modifiera koden så att den tar hem den också.

/Demonen


Svara

Sv: Winsock

Postades av 2002-05-16 17:19:50 - Raderat konto

Denna kod är nästan samma som den ovan men har "RETR" kommandot med, kolla längre ned, där du hittar ******* mellan ligger "min" kod.


Option Explicit
Dim AnvNamn As String
Dim Pass As String
Dim MailServer As String

Dim omg As Integer
Dim SenastAntal As Integer


Private Sub Form_Load()
SenastAntal = 0

AnvNamn = "johan" 'användarnamn på mailservern
Pass = "xxx" 'lösenord
MailServer = "mail.domän.se" 'mailserver

End Sub

Private Sub Timer1_Timer()
omg = 1
txtMail.Text = "Ansluter till mailservern..." + vbCrLf
Winsock1.Close
Winsock1.RemoteHost = MailServer
Winsock1.RemotePort = 110
Winsock1.Connect
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a As String
Dim antal As Integer

Winsock1.GetData a
txtMail.Text = txtMail.Text + a

Select Case omg

Case 1
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("user " + AnvNamn + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 2
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("pass " + Pass + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 3
If Left(a, 3) = "+OK" Then
Winsock1.SendData ("stat" + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 4
If Left(a, 3) = "+OK" Then
antal = Split(a)(1)
If antal > SenastAntal Then
MsgBox antal - SenastAntal & " nytt/nya mail!"
End If
SenastAntal = antal
'***************************************
Dim mailnr
mailnr = "retr " & antal
Winsock1.SendData (mailnr + vbCrLf)
'****************************************
Winsock1.SendData ("quit" + vbCrLf)
Else
Winsock1.Close
End If
omg = omg + 1
Case 5
Winsock1.Close
End Select

End Sub


Svara

Sv: Winsock

Postades av 2002-05-17 08:15:19 - Johan Andersson

Det händer fortfarande inget annant att det kommere "+ok" längstned :(
Resultatet ser ut så här:

Ansluter till mailservern...
+OK Servern ready
+OK
+OK
+OK antalmail byte
+OK


/Demonen


Svara

Sv: Winsock

Postades av 2002-05-17 09:43:34 - Raderat konto

Tar du hela koden som jag skicka in? O du får det inte att funka? Märkligt...För om jag kopierar hela koden o infogar dom kontroller som skall vara med och ställer in user, password och mailservern så lirar det klockrent...


Svara

Sv: Winsock

Postades av 2002-05-17 12:02:40 - Johan Andersson

Ja jag tar hela koden och infogar döljande kontroler:

1 stycke Textbox med namn: Txtmail och prefernces:
Multilanine = True
Scrollbarrs = # Both

1 stycke Timer men namn: Timer1 och intervall = 5000

En Winsock kontrol som jag inte har ändrat något



/Demonen


Svara

Sv: Winsock

Postades av 2002-05-17 13:46:14 - Raderat konto

Jaa-aa du...*funderar* då fattar inte JAG iaf, är det ingen annan på forumet som kan lägga sig i, jag har slut på ideer:)
Hos mig fungerar det...


Svara

Sv: Winsock

Postades av 2002-05-17 13:50:16 - Johan Andersson

kan du inte skcika dit program så jag kan testa i alla fall ???


Svara

Sv: Winsock

Postades av 2002-05-17 14:00:48 - Raderat konto

Menart du hela projektet? zippat via mail? får jag adressen i så fall:)


Svara

Sv: Winsock

Postades av 2002-05-17 14:10:27 - Jan Eriksson

Koden fungerar utan problem hos mig också...

/Janne


Svara

Sv: Winsock

Postades av 2002-06-04 08:16:50 - Johan Andersson

Jag har inte kunnat kolla svaren på detta inlägg, har inte haft tillgång till en dator med intenert anslutning.
I alla fall så kan du skicka programet till min hem ePost som är: andersson.johan@beta.telenordia.se

Annars kommer jag inte kunna kolla om du har skickat koden eller ej på ett BRA tag.

M.V.H.

Demonen


Svara

Sv: Winsock

Postades av 2002-06-04 09:45:02 - Raderat konto

Tjena, jag har nu mailat dig koden på andersson.johan@beta.telenordia.se, lycka till:-)


Svara

Sv: Winsock

Postades av 2002-06-05 13:18:10 - Johan Andersson

Tackar, ska kolla när jag kommer hem :)


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 660
27 958
271 741
624
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies