Hej! Hej, nedan har du en "lista" på vilka status som finns. Hej Hej, för att kolla inkommande server (POP3) så räcker det med att du upprättar en anslutning till denna, med dina uppgifter, sen under winsock1.getdata (dinsträng) så tar du emot det som servern ger tillbaka. OK! jag får ett felmedelande nätr jag försöker ansluta till min pop2 server Nu kanske jäg inte tänker men jag får felmeddelande när jag försöker köra följande hmm... Det finns en jättebra komponent för mailhantering via vb som heter VBSendMail Hej, jag ber om ursäkt för min felskrivning. ok... det fungerar Najs. jag klipte in din kod och testade.. Hej, jag hoppas du bytte "DITT_USER" & "DITT_LÖSEN" mot det du ska logga in med? Japp jag bytte ut den... Ok......fan va mysko, jag har kört detta mot massa mailservers, funkar klockrent men jag e förbryllad över svaren du får, känns inte som standard, inte vad jag erfarit iaf. jag får samma meddelande 500 don´t understand that.. Sorry, det blev fel, jag gillar inte Pelles sökfunktion, den har inte fokus när man skriver in sökord och trycker enter, då gör den det som jag markerat sist... Tjoho? Tänkte om du inte ser att jag uppdaterar då jag skrev i samma tråd:) skit bra.... Nu fungerar det... dvs att man skickar på port110 och tar emot på port 25.Lite tips om mailhantering....WInsock
Jag tänker bygga ett litet program som endast testar mailkonton. Dvs Jag skall kunna ange användaramn, lösenord smtpserver och pop3 server och kunna testa det kontot. På samma sätt som i outlook i kontohanteringen.
är det någon som har ett bra tips på hur man kan kontrollera detta. Jag har jobbat med Winsock tidigare i vb. Men jag undrar om det finns några speciella kommandon till detta. Det handlar igentiligen endast om att kunna logga in på kontot kontrollera att man kommer in på resp server, utan att hämta eller skicka mail.
tacksam för alla svar
/phinalaSv: Lite tips om mailhantering....WInsock
När winsock ansluter händer dessa.
För att kontrollera om en anslutning funkat så får du fånga upp det som winsock får tillbaka.
Hur pass bra koll har du på det?
Fråga om du behöver hjälp, jag har den infon du behöver.
*************************************************
Dim strState As String
Select Case winsock1.State
Case sckClosed
strState = "Closed"
Case sckOpen
strState = "Open"
Case sckListening
strState = "Listening"
Case sckConnectionPending
strState = "Connection pending"
Case sckResolvingHost
strState = "Resolving host"
Case sckHostResolved
strState = "Host resolved"
Case sckConnecting
strState = "Connecting" '6
Case sckConnected
strState = "Connected"
Case sckClosing
strState = "Peer is closing the connection"
Case sckError
strState = "Error"
End Select
*************************************************
/BSv: Lite tips om mailhantering....WInsock
Shysst av dig!
Jo jag vet att det finns Winsock1.GetData och Winsock1.SendData
min tanke är att jag fyller i alla konto uppgifterna och sedan skall jag
Kontrollera utgående server
Kontrollera inkommanade server
Logga in på inkommande server
Retunera ok för varje kontroll eller Error som jag sedan skall visa i applikationen.
Och jag har kommit så lång att man skickar visa koder till servern Ex:
HELO mm
Men jag skulle behgöva hjälp med vilka kommandon jag skall använda och hur jag tolkar svaren så att jag kan översätta dem till "svenska" i min applikation
/PhinalaSv: Lite tips om mailhantering....WInsock
Jag har löst denna fråga genom att starta en timer när anslutning sker.
timer1.enabled=true
wsCommand.Connect popserver,portnr
Denna timer skall återställas när:
dim dinsträng
if winsock1.getdata (dinsträng) = "+" then timer1.enabled=false:msgbox "Det gick bra"
Det betyder att det gick bra. Kommer det "-" som första tecken så gick det fel.
timern löser ut ett meddelande och stänger winsock om den inte får svar, en form av timeout.
Sätt den på 30000 i interval=ca 30 sek. försök göra en connection mellan varven under dessa 30 sek.
Detta "+ Hallo" som du skrev är ett svar från servern, det är det första som kommer vid en anslutning, kan se olika ut men verkar va standard.
ska du bara kolla om server svarar så räcker detta.
Ska du logga in ska du nu skicka in:
winsock1.senddata ("USER " & användarid & vbcrlf):exit sub ' OBS GLÖM EJ VBCRLF, det är sluttecken mot server, winsock hänger sig och VB kraschar om denna missas
Efter detta så kommer winsock1.getdata att börja om och hämta svaret på det du just skickade.
Svar= "+ user OK, password required" (eller likn)
winsock1.senddata ("PASS " & lösenord& vbcrlf):exit sub
sen börjar det om igen och du mottager nått i stil med "+ OK Logged in", detta får du kolla vad som kommer.
Nu är du inloggad och kan utföra en del kommandon. (Sök på POP3 commands på google)
Alla kommandon skickas som user och Pass gjorde. glöm inte mellanslaget "PASS ".
winsock1.senddata ("QUIT " & vbcrlf):exit sub ' Avslutar sessionen
Det luriga är att koden startar om hela tiden så för att den inte ska skicka user & pass flera ggr så måste du tala om att detta är gjort så koden struntar i det.
Detta har jag färdigt men jag är nyfiken på hur DU löser den biten, inte allt för simpelt.
Eftersom saker kan hända med nätet så använder du status ovan för att kolla INNAN du kör en senddata.
Hoppas du blev klokare, smtp har jag inte kollat så mycket på.
/BSv: Lite tips om mailhantering....WInsock
Jag skall ta mig an detta. Jag meddelar när det är klart och berättar hur jag löste det sista du skrev.
Tack för hjälpen!
/PhinalaSv: Lite tips om mailhantering....WInsock
felmeddelande lyder:
Wrong connection state for the requested transaction or request..
Jag har intställ på tcp protocol.
Någon ide om vad det kan varaSv: Lite tips om mailhantering....WInsock
<code>
If Winsock1.GetData(strServerResponse) = "+" Then
</code>
enl ditt exempel innan. Den gnäller på = tecknet
hela retursträngen ser ut så här
220 comvena.com ESMTP MDaemon 7.2.0; Wed, 22 Sep 2004 14:46:30 +0200
/phinalaSv: Lite tips om mailhantering....WInsock
nu får jag fäljande meddelande
500 What? I don't understand that.
när jag försöker skicka in användarnament
... några tips.
Obs jag använder mig uteslutande från ditt exempel Bertil
en fråga som slog mig. Hur vet winsock att det ett smtp-konto eller ett pop3 konto?
med tanke på miott svar jag fick..
/phinalaSv: Lite tips om mailhantering....WInsock
Du hittar sourcekoden här.
http://www.freevbcode.com/ShowCode.Asp?ID=109
Du kan säkert lära dig en massa från denna kod.Sv: Lite tips om mailhantering....WInsock
äsch va fel det blir då:)
Du skriver POP2, vet ej om det blir samma som POP3 ?
"220 comvena.com ESMTP MDaemon 7.2.0; Wed, 22 Sep 2004 14:46:30 +0200 "
Är detta det FÖRSTA som kommer från din popadress?
Det BRUKAR komma ett "+" eller "-" men gör det nu inte det så får du troligen skriva
<code>
dim dinsträng as STRING
winsock1.getdata dinsträng
if left(dinsträng,1)="220" then msgbox "servern svarar: " & dinsträng
if left(dinsträng,1)<>"220" then msgbox "Nu är det nått fel"
</code>
Nu är det verifierat att detta nedan funkar. (vid svar som + & -)
Titta på denna funktion:
Först kollar den om winsock är i rätt STATE för att kunna ansluta.
<code>
Public Function connectmail()
If Not winsock1.State = sckClosed Then
winsock1.Close
Do Until winsock1.State = sckClosed
DoEvents
Loop
End If
winsock1.Connect server, port
End Function
</code>
Så här skall det vara i winsock1.DataArrival:
<code>
dim dinsträng as STRING
winsock1.getdata dinsträng
if left(dinsträng,1)="+" then msgbox "servern svarar: " & dinsträng
if left(dinsträng,1)="-" then msgbox "Nu är det nått fel"
</code>
anslut med "connectmail"
Nu har du gjort en anslutning, inget mer. Servern har svarat "+" vilket betyder att den svarat.
Observera att du måste ha en giltig popadress.
Ang SMTP och POP så är SMTP utgående server, ska du skicka mail gör du inte på detta viset alls.
Att logga in på detta vis gör du mot POP
Börja med enbart detta, meddela hur det går:)Sv: Lite tips om mailhantering....WInsock
Det var pop3 jag menade... sorry!
220 comvena.com ESMTP MDaemon 7.2.0; Wed, 22 Sep 2004 14:46:30 +0200 är det som returenas , men jag gör som du skre fångar upp 220.
På mitt företag så använder mail.webworx.se på både pop3 och smtp så det var därför som jag undrade hur protokollet vet om det är pop eller smtp.
ok.... men nu fungera, hur går vi vidare
/phinalaSv: Lite tips om mailhantering....WInsock
Ok, nu ska du automatiskt skicka användarid + lösen.
Allt sker i winsock1_dataArrival.
<code>
dim dinsträng as STRING
static UserSent as boolean
static PassSent as boolean
winsock1.getdata dinsträng
msgbox dinsträng ' så du ser lite vad som händer
if left(dinsträng,3)<>"220" then msgbox "Nu är det fel" :exit sub
if left(dinsträng,3)="220" then ' Allt OK
if usersent=false then winsock1.senddata("USER " & DITT_USER & VBCRLF) :UserSent=true :exit sub
if PassSent=false then winsock1.senddata("PASS " & DITT_LÖSEN & VBCRLF) :PassSent=true :exit sub
end if
'Glöm inte att rensa usersent/passsent vid avslut om du ska ansluta igen.
Usersent=""
Passsent=""
</code>
Har inte verifierat helt nu, men det bör funka.Sv: Lite tips om mailhantering....WInsock
jag fick följande meddelande
500 What? I don't understand that.
/phinalaSv: Lite tips om mailhantering....WInsock
får du det efter du sänder USER?
DITT_USER= mailkontot eller likn, brukar ofta vara hela mailadressen men det verkar inte som det är fallet, efter du anslutit och fått ditt "220" ska du skicka:
"winsock1.senddata("USER " & DITT_USER & VBCRLF)"
if usersent=false then winsock1.senddata("USER " & DITT_USER & VBCRLF) :UserSent=true :exit sub
/BSv: Lite tips om mailhantering....WInsock
<code>
If UserSent = False Then Winsock1.SendData ("USER " & txtUsername & vbCrLf): UserSent = True: Exit Sub
If PassSent = False Then Winsock1.SendData ("PASS " & txtPassword & vbCrLf): PassSent = True: Exit Sub
</code>
/PSv: Lite tips om mailhantering....WInsock
om du tar bort if-satserna ovan och kör enbart som vi gjorde innan, då funkar det ju med anslutningen.
sen lägger du enbart "Winsock1.SendData ("USER " & txtUsername & vbCrLf)" i en knapp och kör endast den.
kolla vad svaret blir då. Blir det samma som innan så vet jag faktiskt inte varför, då verkar den inte fatta kommandot USER vilket är mycket märkligt.
EDIT: Kolla på denna länk.
http://www.nthelp.com/pop_commands.htm
/BSv: Lite tips om mailhantering....WInsock
Men återigen
hur vet mailservern att det är pop3 som kommer.
Vi använder ex
smtp = mail.comvena.com
pop3: mail.comvena.com
på mitt företag. Är det någon inställning eller???
/PSv: Lite tips om mailhantering....WInsock
http://www.pellesoft.se/communicate/tips/tips.aspx?tid=749
kolla det så ser du att anslutning inte sker på det viset.
Titta på detta då:
+OK comvena.com POP MDaemon 7.2.0 ready <MDAEMON-F200409231727.AA2742546MD6549@comvena.com>
så ser det ut när JAG ansluter till er POP. Helt OK. Så därför slog det mig, är porten öppen i brandväggen? Port 110 brukar det vara.
Det funkade iaf bra hos mig.
/BSv: Lite tips om mailhantering....WInsock
Sv: Lite tips om mailhantering....WInsock
bra!
Jag fortsätter nu och återkommer och ser om jag stöter på några fler problem
/P