Avatar billede the_legend Nybegynder
03. februar 2004 - 12:51 Der er 19 kommentarer og
1 løsning

et script som kan tjekke min mail på nettet. den er hos mail.dk

Hej.

jeg har en mail hos tdc ( www.mail.dk ) og jeg er igang med en side og ville være lykkelig hvis jeg kunne tjekke min mail på nettet som på www.mail.dk og jeg vil gerne kunnen gøre det på min egen side.? Er på totalt bar bund så noget kode ville være RIGTIG godt.
Avatar billede the_legend Nybegynder
03. februar 2004 - 17:46 #1
nogle som kan hjælpe?
Avatar billede RJFreelance Praktikant
03. februar 2004 - 17:59 #2
Kan du lave en connection til en indgående mail server ??
Avatar billede the_legend Nybegynder
03. februar 2004 - 19:53 #3
jeg kan sætte den op i mit outlook? så ja det kan jeg.
Avatar billede fangel Nybegynder
03. februar 2004 - 19:59 #4
du kan fx selv bakse noget sammen... POP3 er ikke en indviklet protokol...

As I Recall
USER din@mail.dk
PASW din-kode
LIST
(her modtager du en liste over ny mails
RESV n
(n = nummer på mail, du modtager numrene fra LIST)
EXIT

sådan noget i den stil...

Morten
Avatar billede the_legend Nybegynder
03. februar 2004 - 20:03 #5
dea=> har ALDRIG arbejdet med dette før så muligt du kan prøv at vise noget helt simpelt kode så jeg kan se det for kender INTET til det.
Avatar billede fangel Nybegynder
03. februar 2004 - 20:07 #6
tæt på... her et et ex. på mig der åbner en socket til min mail server og tjekker min mail:

Jeg har sat >> foran linier jeg sender og << foran linier jeg modtager

---
bash-2.05b$ sock mail.desi-dev.dk:110
<< +OK POP3 server ready <16254976.1224389562@mailserv02>
>> USER postmaster@desi-dev.dk
<< +OK Please send PASS
>> PASS xxxxxx
<<  +OK User mailbox has 1 message (4377 octets)
>>  LIST
<<  +OK 1 message (4377 octets)
<<  1 4377
<<  .
>> RETR 1
<<  +OK
<<  Received: from [195.249.40.85] by mailserv02.cliche.dk [195.249.40.114] with SmartMax MailMax for postmaster@desi-dev.dk at Wed, 07 Jan 2004 12:06:15 +0100
<< Return-Path: <afsender@mail.dk>
<< Received: from tint.teaminternet.net (unknown [195.249.40.50]) by smtp.servnet.dk (Postfix) with ESMTP id D217D8087F9; Wed,  7 Jan 2004 12:07:35 +0100 (CET)
<< Subject: EMNE
<< From: "Afsender" <afsender@mail.dk>
<< Date: Wed, 7 Jan 2004 12:10:15 +0100
<< To: "DeSi Development" <postmaster@desi-dev.dk>
<< Content-Type: text/plain; charset="iso-8859-1"
<< Message-Id: <20040107110735.D217D8087F9@smtp.servnet.dk>
<<
<< Indhold af mailen
<<
<< .
>> QUIT
<< +OK
---

Morten
Avatar billede fangel Nybegynder
03. februar 2004 - 20:11 #7
og du leger med sockets via fsockopen og de normale file-operatere (fgets/fputs)...

et link til den off. protokol
http://www.faqs.org/rfcs/rfc1939.html

Morten
Avatar billede the_legend Nybegynder
03. februar 2004 - 20:56 #8
okay nu tager vi det helt roligt:D det der fatter jeg bare IKKE OG EN SK** af.. Undskyld mit sprog.. Men det ligner bare ikke ngoet af det php jeg kender. kun lige MEGET LIDT.
Avatar billede the_legend Nybegynder
03. februar 2004 - 20:56 #9
så muligt du kan skrive lidt ud for og evt hvad jeg skal skrive/udfylde
Avatar billede fangel Nybegynder
03. februar 2004 - 21:15 #10
det er ikke PHP, men en "optagelse" af hvad der sker når en person tjekker sin email...

at "simulere" dette i PHP (læs: tjekke sin mail) gøres som skrevet ved hjælp af fsockopen() og fputs() og fgets()... noget ala dette:

<?php

$dinEmail = "din@email.dk";
$dinKode = "din-kode";

$socket = fsockopen("pop3.mail.dk", 110)or die("ingen forbindelse");
if( ! strpos("+OK", fgets($socket, 512))) die("server svare ikke");

fputs("USER " . $dinEmail, $socket)or die("bruger-afsendelse fejlede");
if( ! strpos("+OK", fgets($socket, 512))) die("bruger gengendelse fejlede");

fputs("PASS " . $dinKode, $socket)or die("bkode-afsendelse fejlede");
if( ! strpos("+OK", fgets($socket, 512))) die("kode gengendelse fejlede");

fputs("LIST", $socket)or die("afsendelse af list fejlede");
$LIST = fgets($socket, 512)or die("modtagelse af list fejlede");
$AntalEmails = intval($LIST[4]);

for($i=1;$i<=$AntalEmails;$i++){
  $emails[$i] = '';
  if( ! fputs("LIST", $socket)) die("afsendelse af retr fejlede på mail " . $i);
  while (!feof($socket)) {
  $emails[$i] .= fgets($socket, 4096)or die("modtagels af mail " . $i . " fejlede");
  }
}

echo "Modtagede Emails:<br><br><pre>";
print_r($emails);
echo "</pre>":

?>

burde virke... (utestet)

Morten
Avatar billede the_legend Nybegynder
04. februar 2004 - 08:23 #11
har nu testet scriptet. Og det virkede ikke DESVÆRRE den siger server svare ikke og har sat det NORMALT op som i outlook.
Avatar billede fangel Nybegynder
04. februar 2004 - 16:31 #12
fordi jeg altid bytter rundt på heystack og needle...

<?php

$dinEmail = "din@email.dk";
$dinKode = "din-kode";

$socket = fsockopen("pop3.mail.dk", 110)or die("ingen forbindelse");
if( ! strpos(fgets($socket, 512), "+OK")) die("server svare ikke");

fputs("USER " . $dinEmail, $socket)or die("bruger-afsendelse fejlede");
if( ! strpos(fgets($socket, 512), "+OK")) die("bruger gengendelse fejlede");

fputs("PASS " . $dinKode, $socket)or die("bkode-afsendelse fejlede");
if( ! strpos(fgets($socket, 512), "+OK")) die("kode gengendelse fejlede");

fputs("LIST", $socket)or die("afsendelse af list fejlede");
$LIST = fgets($socket, 512)or die("modtagelse af list fejlede");
$AntalEmails = intval($LIST[4]);

for($i=1;$i<=$AntalEmails;$i++){
  $emails[$i] = '';
  if( ! fputs("LIST", $socket)) die("afsendelse af retr fejlede på mail " . $i);
  while (!feof($socket)) {
  $emails[$i] .= fgets($socket, 4096)or die("modtagels af mail " . $i . " fejlede");
  }
}

echo "Modtagede Emails:<br><br><pre>";
print_r($emails);
echo "</pre>":

?>

Morten
Avatar billede fangel Nybegynder
04. februar 2004 - 16:32 #13
og du skal nok bruge <dit-brugernummer>@mail.dk - altså fx 120000000001@mail.dk som mail add...

Morten
Avatar billede fangel Nybegynder
04. februar 2004 - 16:56 #14
nu har jeg lavet det så det virker (testet)

---
<?php

$dinEmail = "din@mail.dk";
$dinKode = "din-kode";
$dinServer = "pop3.mail.dk";
$maxSafety = 100; // en sikkerheds-barriere, for at den ikke skal hente FOR lange filer ned (nu max 400K)

// du bør nok også lave en
// set_time_limit(0);
// for at undgå at scriptet timer ud efter 30 sek

$socket = fsockopen($dinServer, 110)or die("ingen forbindelse");
if( ! strpos(fgets($socket, 512), "OK")) die("server svare ikke");

fputs($socket, "USER " . $dinEmail . "\n\r")or die("bruger-afsendelse fejlede");
if( ! strpos(fgets($socket, 512), "OK")) die("bruger gengendelse fejlede");

fputs($socket, "PASS " . $dinKode . "\n\r")or die("kode-afsendelse fejlede");
if( ! strpos(fgets($socket, 512), "OK")) die("kode gengendelse fejlede");

fputs($socket, "LIST\n\r")or die("afsendelse af list fejlede");
$LIST = fgets($socket, 512)or die("modtagelse af list fejlede");
$AntalEmails = intval($LIST[4]);

if($AntalEmails > 0){
  for($i=1;$i<=$AntalEmails;$i++){
    $emails[$i] = '';
    fputs($socket, "RETR " . $i . "\n\r")or die("afsendelse af retr fejlede på mail " . $i);
   
    $safety = 0;   
    while (!feof($socket)) {
      $emails[$i] .= fgets($socket, 4096)or die("modtagels af mail " . $i . " fejlede");
      $safety++;
      if($safety>$maxSafety) break;
    }
  }

  echo "Modtagede Emails:<br><br><pre>";
  print_r($emails);
  echo "</pre>";
}
else{
  echo "Ingen mails...";
}

fclose($socket);

?>
---

Morten
Avatar billede the_legend Nybegynder
06. februar 2004 - 11:41 #15
jeg får denne fejl: kode gengendelse fejlede selv om det er sat op til at virke.. Why that? det hele er korrekt indtastet har tjekket.
Avatar billede the_legend Nybegynder
08. februar 2004 - 15:36 #16
lukker..
Avatar billede fangel Nybegynder
08. februar 2004 - 18:31 #17
og lige præcis hvorfor havde jeg ikke fortjent de point - jeg leverede et script som jeg har testet (og kan få flere til det) og det virker... !

du skal måske KUN indtaste dit brugernummer som email... ikke [noget]@mail.dk - prøv det (kan ikke huske opsætningen af tdc-mail)

synes selv jeg havde gjort mig fortjent til bare en smule point

Morten
Avatar billede the_legend Nybegynder
11. februar 2004 - 13:45 #18
og og normalt logger jeg ind med codeadmin@mail.dk så det skal dette jo også være.. og har prøvet med mit kontonr virker heller ikke.
Avatar billede fangel Nybegynder
11. februar 2004 - 18:37 #19
koden virker - jeg har testet den og du skal nok bruge dit 12 cifrede brugernummer som bruger... i hvert fald det jeg bruger i min mail-klient

---
bash-2.05b$ sock pop3.mail.dk:110
+OK InterMail POP3 server ready.
USER 1201xxxxx386
+OK please send PASS command
PASS xxSoMuchForMyPasswordxx
+OK 120101250386 is welcome here
LIST
+OK 0 messages
.
QUIT
+OK 120101250386 InterMail POP3 server signing off.
---

Morten
Avatar billede zenze Nybegynder
17. april 2004 - 23:03 #20
Prøv at checke "the legend"s senest spørgsmål?????
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester