Avatar billede engberg Juniormester
21. maj 2004 - 00:00 Der er 4 kommentarer og
1 løsning

Vis alle mails med indhold. Enkelt script

Hejsa

Jeg har et enkelt script, som kan hente mails fra en pop3 og vise en oversigt over alle mails. Den kan også vise EN mail, med alle oplysninger (mailens body).

Men jeg kan simpelthen ikke finde ud af at kombinere det, så scriptet viser alle mails - med både header og body... :-/

Jeg vil sætte stor pris på det, hvis en eller anden kan hjælpe mig... Scriptet ser således ud:

<html><title>Webmail</title><body>
<?
require ("serverinfo.inc.php");
include ("mime.php");

$fp = fsockopen($server, $port);
$dummy = fgets($fp, 1024);
fputs($fp, "USER $bruger\r\n");
$dummy = fgets($fp, 1024);
fputs($fp, "PASS $adgangskode\r\n");
$tredjeLinje = fgets($fp, 1024);
fputs($fp, "STAT\r\n");
$mails = fgets($fp, 1024);
$mails = split(" ", $mails);
$no_of_mails = $mails[1];

if (!$showmail && !$all)
{
   
    for ($i = 1; $i <= $no_of_mails; $i++)
    {
        fputs($fp, "TOP $i 0\r\n");
        while (substr($linje = fgets($fp, 1024), 0, 2) != chr(13).chr(10))
        {
            if (substr($linje, 0, 9) == "Subject: ")
            {
                $emne = htmlspecialchars(substr($linje, 9));
            }
            if (substr($linje, 0, 6) == "From: ")
            {
                $fra = htmlspecialchars(substr($linje, 6));
            }
            if (substr($linje, 0, 6) == "Date: ")
            {
                $dato = htmlspecialchars(substr($linje, 6));
            }
        }
        echo "$i.) <a href=\"$PHP_SELF?showmail=$i\">".$emne."</a><br/>\n";
    }

echo "<br><br><a href=\"$PHP_SELF?all=2\">Vis alle</a><br/>\n";

}

if ($showmail)
{
    fputs($fp, "RETR $showmail\r\n");
    $dummy = fgets($fp, 1024);

    while (substr($linje = fgets($fp, 1024), 0, 2) != chr(13).chr(10))
    {
        if (substr($linje, 0, 9) == "Subject: ")
        {
            $emne = htmlspecialchars(substr($linje, 9));
        }
        if (substr($linje, 0, 6) == "From: ")
        {
            $fra = htmlspecialchars(substr($linje, 6));
        }
        if (substr($linje, 0, 4) == "To: ")
        {
            $til = htmlspecialchars(substr($linje, 4));
        }
        if (substr($linje, 0, 6) == "Date: ")
        {
            $dato = htmlspecialchars(substr($linje, 6));
        }
    }
echo "Dato: ".$dato."<br/>\n";
echo "Fra: ".$fra."<br/>\n";
echo "Emne: ".$emne."<br/>\n";
$posttekst="-------POST---------<br/>"; */

while (substr($linje = fgets($fp, 1024), 0, 3) != ".".chr(13).chr(10))
    {
        echo $linje . "<br />";
    $dethele = $dethele.$linje;
        }
}

if ($all) {
HER VILLE JEG GERNE SE ALLE MAILS MED ALLE BODYS
}

?>

</body>
</html>
Avatar billede dennismp Nybegynder
21. maj 2004 - 00:07 #1
Har du imap extension installeret?
Avatar billede dennismp Nybegynder
21. maj 2004 - 00:11 #2
Nå, dette virker måske :-)

<html><title>Webmail</title><body>
<?
require ("serverinfo.inc.php");
include ("mime.php");

$fp = fsockopen($server, $port);
$dummy = fgets($fp, 1024);
fputs($fp, "USER $bruger\r\n");
$dummy = fgets($fp, 1024);
fputs($fp, "PASS $adgangskode\r\n");
$tredjeLinje = fgets($fp, 1024);
fputs($fp, "STAT\r\n");
$mails = fgets($fp, 1024);
$mails = split(" ", $mails);
$no_of_mails = $mails[1];

if (!$showmail && !$all)
{
   
    for ($i = 1; $i <= $no_of_mails; $i++)
    {
        fputs($fp, "TOP $i 0\r\n");
        while (substr($linje = fgets($fp, 1024), 0, 2) != chr(13).chr(10))
        {
            if (substr($linje, 0, 9) == "Subject: ")
            {
                $emne = htmlspecialchars(substr($linje, 9));
            }
            if (substr($linje, 0, 6) == "From: ")
            {
                $fra = htmlspecialchars(substr($linje, 6));
            }
            if (substr($linje, 0, 6) == "Date: ")
            {
                $dato = htmlspecialchars(substr($linje, 6));
            }
        }
        echo "$i.) <a href=\"$PHP_SELF?showmail=$i\">".$emne."</a><br/>\n";
    }

echo "<br><br><a href=\"$PHP_SELF?all=2\">Vis alle</a><br/>\n";

}

function showMail($fp,$showmail)
{
    fputs($fp, "RETR $showmail\r\n");
    $dummy = fgets($fp, 1024);

    while (substr($linje = fgets($fp, 1024), 0, 2) != chr(13).chr(10))
    {
        if (substr($linje, 0, 9) == "Subject: ")
        {
            $emne = htmlspecialchars(substr($linje, 9));
        }
        if (substr($linje, 0, 6) == "From: ")
        {
            $fra = htmlspecialchars(substr($linje, 6));
        }
        if (substr($linje, 0, 4) == "To: ")
        {
            $til = htmlspecialchars(substr($linje, 4));
        }
        if (substr($linje, 0, 6) == "Date: ")
        {
            $dato = htmlspecialchars(substr($linje, 6));
        }
    }
    echo "Dato: ".$dato."<br/>\n";
    echo "Fra: ".$fra."<br/>\n";
    echo "Emne: ".$emne."<br/>\n";
    $posttekst="-------POST---------<br/>";

    while (substr($linje = fgets($fp, 1024), 0, 3) != ".".chr(13).chr(10))
    {
        echo $linje . "<br />";
        $dethele = $dethele.$linje;
    }
}

if($showmail) {
  showMail($fp,$showmail);
}

if ($all) {
    for ($i = 1; $i <= $no_of_mails; $i++)
    {
      showMail($fp,$i);
    }
}

?>

</body>
</html>
Avatar billede engberg Juniormester
21. maj 2004 - 00:16 #3
ingen imap, men det er jo ligemeget - dit forslag virker jo!! :-) Hvorfor faen kunne jeg ikke selv finde ud af det... :-(
Smid venligst et svar så jeg kan komme af med lidt point...
Avatar billede dennismp Nybegynder
21. maj 2004 - 00:28 #4
Du får et svar,

IMAP gør det lidt nemmere/pænere kode (trods navnet, kan imap også klare pop3) - men det går nok alligevel-.

God kodelyst :)
Avatar billede engberg Juniormester
22. maj 2004 - 09:20 #5
Jeg ved godt at IMAP kan klare det hele, men det hjælper jo desværre ikke, når der ikke findes gratis udbydere af webhoteller, som tilbyder IMAP :-)
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