Hämta pop3 email ???
28 svar · 643 visningar · startad av Zacay · sida 2 av 2
Trådstarten, av Zacay
Hej! jag är en nybörjare på PHP och har byggt min första commuinty. med en massa funktioner :) nu tänkte jag att det skulle vara häftigt att medlemmar kan hämta sin pop3 email genom den oxå.. Kollade upp PHP manualen. .där stod inte så mycket om det.. bara en lista med funktioner. Jag tänkte är det ngn som har några funktioner som jag kan använda mig av att hämta email? alla hjälp skulle vara
Läs hela trådstarten →Jag har problem med funktionen:
kastaPost($i);
koden jag använder är:
for($i = 0; $i < count($emails); $i++)
{
kastaPost($i);
tabortPost();
} ?>
jag får följande fel:
Fatal error: Call to undefined function: kastapost() in /var/www/stage/johan/temp/pop/index.php on line 10
Jag inkluderar klassen längst upp i filen, via kommandot require(pop3.php);
Snälla hjälp
Det verkar som att du inte använder klassens instans när du använder funktionerna?
Så här bör det se ut, och skulle jag ha gjort:
$Mail = new ePost ( "din_epost_server/pop3:110", "användare", "lösen" );
$mailArray = $Mail->hämtaPost ();
while ( $currentMail = array_shift ( $mailArray ) )
$Mail->kastaPost ( $currentMail['msgID'] );
$Mail->tabortPost ();
$Mail->stängPost ();
Du använde inte instansen ( i mitt exempel variabeln $Mail ) när du anropade funktionerna, vilket fick PHP att tro att kastaPost var en separat funktion.
Du skickade inte heller med meddelandets ID-nummer när du använda kastaPost(), utan du skickade med loopens aktuella nummer. Se hur jag har gjort, så borde det gå bättre.
Kul att du använder klassen!
Det är inte så att någon löst kruxet med att få bort:
This is a multi-part message in MIME format. ------=_NextPart_000_0021_01C198F6.1623B460 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable testar2 ------=_NextPart_000_0021_01C198F6.1623B460 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
ur meddelandena?
nicclas. Kolla http://cgi.webforum.nu/wf/Forum12/HTML/001834.html#6
Det är i den här tråden, lite högre upp bara.
Jag löste det, nu blir det man får ut rent o snyggt...
Lita arbete kvar dock =)
<?
$mbox = imap_open ("{pop.server.com/pop3:110}INBOX", "användarnamn", "lösenord") or die(imap_last_error());
$antal = @imap_num_msg($mbox);
for ($k=1;$k <= $antal;$k++) {
$msg_header = @imap_headerinfo($mbox,$k,1,1);
$mailet[$k] = @imap_fetchbody($mbox,$k,"1");
$datum[$k] = $msg_header->date;
$fran[$k] = $msg_header->from[0]->personal;
$till[$k] = $msg_header->toaddress;
$text = $msg_header->subject;
$elements=@imap_mime_header_decode($text);
for ($i=0;$i <count($elements);$i++) {
$amne[$k] .=$elements[$i]->text;
}
}
if ($antal > 0)
{
for ($j=1;$j <=$antal;$j++) {
print "<B>Ämne: </B> $amne[$j] <BR>";
print "<B>Datum:</B> $datum[$j] <BR>";
print "<B>Från: </B> $fran[$j] <BR>";
print "<B>Till: </B> $till[$j] <BR><BR>";
print "$mailet[$j]";
print "<BR><BR><BR>";
}
// Här kan man göra något finurligt om man vill ta bort mailen
// @imap_delete ($mbox, 1);
// @imap_expunge ($mbox);
}
else
{ print "mailboxen e tom"; }
?>
Jag löste det, nu blir det man får ut rent o snyggt...
Lita arbete kvar dock =)
<?
$mbox = imap_open ("{pop.server.com/pop3:110}INBOX", "användarnamn", "lösenord") or die(imap_last_error());
$antal = @imap_num_msg($mbox);
for ($k=1;$k <= $antal;$k++) {
$msg_header = @imap_headerinfo($mbox,$k,1,1);
$mailet[$k] = @imap_fetchbody($mbox,$k,"1");
$datum[$k] = $msg_header->date;
$fran[$k] = $msg_header->from[0]->personal;
$till[$k] = $msg_header->toaddress;
$text = $msg_header->subject;
$elements=@imap_mime_header_decode($text);
for ($i=0;$i <count($elements);$i++) {
$amne[$k] .=$elements[$i]->text;
}
}
if ($antal > 0)
{
for ($j=1;$j <=$antal;$j++) {
print "<B>Ämne: </B> $amne[$j] <BR>";
print "<B>Datum:</B> $datum[$j] <BR>";
print "<B>Från: </B> $fran[$j] <BR>";
print "<B>Till: </B> $till[$j] <BR><BR>";
print "$mailet[$j]";
print "<BR><BR><BR>";
}
// Här kan man göra något finurligt om man vill ta bort mailen
// @imap_delete ($mbox, 1);
// @imap_expunge ($mbox);
}
else
{ print "mailboxen e tom"; }
?>
------------------
.... Weii
@imap_delete ($mbox, 1);
skall alltså ligga innanför wilesatsen där all data skrivs ut..
@imap_expunge ($mbox);
skall ligga utanför while satsen..
annars tar den inte bort alla meddelanden..
tjipp o hej