Fsockopen a pop3 – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Fsockopen a pop3 – PHP – Fórum – Programujte.comFsockopen a pop3 – PHP – Fórum – Programujte.com

 

tonez+1
Návštěvník
10. 2. 2009   #1
-
0
-

Zdravím všechny programátory. Potřebuji pomoc se zkouškou.


Zadání:
z PHP skriptu se připojit na pop3 účet (pouzit fci pro praci se soketem fsockopen, nikoliv IMAP funkce)
stáhnout seznam zpráv, stáhnout několik zpráv, zobrazit jejich náležitosti (velikost,UID cislo) a obsah, barevně rozlišit hlavičky a tělo.


na netu sem našel něco takového

<?php


function pop3_open($server, $port)
{
global $POP3_GLOBAL_STATUS;

$pop3 = fsockopen($server, $port);
if ($pop3 <= 0) return 0;

$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

return $pop3;
}

function pop3_user($pop3, $user)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "USER $user\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

return 1;
}

function pop3_pass($pop3, $pass)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "PASS $pass\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

return 1;
}

function pop3_stat($pop3)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "STAT\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

if (!eregi("+OK (.*) (.*)", $line, $regs))
return 0;

return $regs[1];
}

function pop3_list($pop3)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "LIST\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

$i = 0;
while (substr($line = fgets($pop3, 1024), 0, 1) <> ".")
{
$articles[$i] = $line;
$i++;
}
$articles["count"] = $i;

return $articles;
}

function pop3_retr($pop3, $nr)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "RETR $nr\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

while (substr($line = fgets($pop3, 1024), 0, 1) <> ".")
{
$data[$i] = $line;
$i++;
}
$data["count"] = $i;

return $data;
}


function pop3_quit($pop3)
{
global $POP3_GLOBAL_STATUS;

fputs($pop3, "QUIT\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;

return 1;
}

$pop3 = pop3_open("pop3.com", "110");

if (!$pop3) {
printf("[ERROR] Failed to connect to localhost<BR>\n");
return 0;
}

if (!pop3_user($pop3, "user@mail")) {
printf("[ERROR] Username failed!<BR>\n");
return 0;
}

if (!pop3_pass($pop3, "heslo")) {
printf("[ERROR] PASS failed!<BR>\n");
return 0;
}

$articles = pop3_list($pop3);
if (!$articles) {
printf("[ERROR] LIST failed!<BR>\n");
return 0;
}

for ($i = 1; $i < $articles ["count"] + 1; $i++)
{
printf("i=$i<BR>\n");
$data = pop3_retr($pop3,$i);
if (!$data) {
printf("data goes wrong on '$i'<BR>\n");
return 0;
}

for ($j = 0; $j < $data["count"]; $j++)
{
printf("$data[$j]<BR>\n");
}
}

?>

a potřeboval bych dodělat
- stáhnout a zobrazit seznam zpráv
- a u zpráv které se mi zobrazili, zobrazit velikost a barevně rozlišit hlavičky a tělo

Opravdu to chváta a proto moc prosím všechny co můžou o pomoc.

Nahlásit jako SPAM
IP: 82.117.140.–
Im web developer. (x)HTML, CSS, JavaScript + jQuery, PHP, MySQL and others :))
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 42 hostů

Podobná vlákna

IMAP vs POP3 — založil fix

POP3 a IMAP — založil survik1

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý