Avatar billede stonedbush Nybegynder
16. november 2005 - 14:33 Der er 12 kommentarer og
2 løsninger

PHP, IMAP. Marker som læst

Hej.

Jeg er igang med at lave en webklient, der kan hente emails, fra en server.
Men jeg kunne godt tænke mig at vide om man kan gøre sådan, at den bliver vist som læst, hvis man har læst den.
Og også at man kan gøre det sådan, at når man har sendt en email, at den så f.eks. ryger over i en mappe der hedder sendt.
Man skal så kunne klikke et sted på siden, hvor man så får vist de mails, man selv har skrevet.
Er det noget man kan, og hvis ja, hvordan gør man så.
Avatar billede jakobdo Ekspert
16. november 2005 - 14:37 #1
imap er jo en protokol som viser en tro kopi af mailboxe på mailserveren.
Så med den bør du jo kunne liste fuld directory af serveren.
Avatar billede stonedbush Nybegynder
16. november 2005 - 14:38 #2
ved du hvordan jeg gør det??
Avatar billede jakobdo Ekspert
16. november 2005 - 14:40 #3
Har du kigget på alle de forskellige imap funktioner?

Denne kode, lister alle mailboxe du har adgang til:

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
    or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
reset($list);
while (list($key, $val) = each($list)) {
  echo imap_utf7_decode($val) . "<br />\n";
}
} else {
echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>
Avatar billede stonedbush Nybegynder
16. november 2005 - 14:50 #4
den siger godt nok følgende:

{pop.SERVER.dk}INBOX.Drafts
{pop.SERVER.dk}INBOX.Trash
{pop.SERVER.dk}INBOX.Sent
{pop.SERVER.dk}INBOX

men hvordan får jeg den til at vise f.eks de sendte.
Der er godt nok ikke nogen der i, hvis jeg kigger der med SquirrelMail.
Kan du fortælle hvordan jeg får lagt en kopi af den sendte mail i INBOX.Sent og hvordan jeg så får det vist, for kan ikke se mig ud af det.
Avatar billede coderdk Praktikant
16. november 2005 - 18:46 #5
F.eks.:

imap_setflag_full( $imap_resource, imap_uid( $imap_resource, $id ), '\\Seen', SE_UID );

Hvor $imap_resource er en imap resource returneret af imap_open...
Avatar billede stonedbush Nybegynder
17. november 2005 - 09:24 #6
coderdk, tager det og sætter den til som set?

Jeg bruger foreløbig denne kode:

$inbox = @imap_open ("{pop.".$_SESSION["SESSION_MAIL_HOST"] . "/pop3:110}", $_SESSION["SESSION_USER_NAME"], $_SESSION["SESSION_USER_PASS"]) or header("Location: error.php?ec=3");

$total = imap_num_msg($inbox);








?>
<html>
<head>
</head>
<body bgcolor="White">

<?
$title = "Læs beskeder";
include("header.php");

$headers = imap_header($inbox, $id);
$structure = imap_fetchstructure($inbox, $id);

if(sizeof($structure->parts) > 1)
{
    $sections = parse($structure);
    $attachments = get_attachments($sections);
}
?>

men kan ikke rigtig kringle hvor jeg skal sætte den ind, eller om hvordan man kan tjekke at den nu er sat.
Og kan du muligvis fortælle mig, hvilken kode jeg skal bruge for at man kan se at den er set, ikke set, osv...
Avatar billede coderdk Praktikant
17. november 2005 - 10:43 #7
Prøv lige efter:

$headers = imap_header($inbox, $id);

At sætte denne ind:

imap_setflag_full( $inbox, imap_uid( $inbox, $id ), '\\Seen', SE_UID );

Så bliver den markeret som set EFTER - Hvis du vil markere den som læst før du skriver mailen ud, så flyt den op før din imap_header linje...
Avatar billede stonedbush Nybegynder
17. november 2005 - 12:14 #8
så har jeg fået den til at sige at når man har læst den, så ER den læst og jeg har fået den side der viser hvilke mails der er, om nogle mails er nye eller om de ikke er nye.
Så mangler jeg bare at man når man sender en mail, at den så bliver lagt i INBOX.Sent mappen og at man kan få vist INBOX.Sent mappen.
Det ville være fedt hvis man f.eks havde nogle links der viste f.eks.:
<a href="folder.php?mappe=sendte">Sendte mails</a>
<a href="folder.php?mappe=trash">Slettet mails</a>

osv.

Så når man klikkede på Sendte mails, så blev de sendte mails vist.
Avatar billede stonedbush Nybegynder
18. november 2005 - 12:25 #9
Cool.

Nu har jeg fået den til at vise de sendte beskeder.
vil i deles om point eller...?
Avatar billede coderdk Praktikant
18. november 2005 - 12:28 #10
:) you decide (:
Avatar billede jakobdo Ekspert
18. november 2005 - 13:38 #11
Jeg vil gerne lægge et svar!
Synes dog de fleste point tilkommer coderdk.
Avatar billede stonedbush Nybegynder
18. november 2005 - 17:06 #12
Jeg synes i begge skal have point :)
Avatar billede jakobdo Ekspert
18. november 2005 - 17:31 #13
Takker for point!
Avatar billede coderdk Praktikant
18. november 2005 - 17:57 #14
Tak tak :-)
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

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