Avatar billede madslc Nybegynder
15. oktober 2004 - 01:48 Der er 7 kommentarer

Webmail via fsockopen - pæn oversigt

Hej

Jeg er ved at lave en webside der kan læse mails fra min pop3-konti. Da min udbyder ikke understøtter imap har jeg brugt sockets. Hvis jeg anmoder om "Date:" fra en mail får jeg f.eks.

Fri, 15 Oct 2004 00:45:12 +0200 (CEST)

Eller som her: 14 Oct 2004 00:22:44 -0000

Jeg vil gerne fjerne det overflødige, så der kun står f.eks.
00:45, Fre 15/10 `04

Det samme gælder "Subject:" og "From:" - indimellem står der f.eks. =?iso-8859-1?Q?

Nogen forslag?
Avatar billede coderdk Praktikant
15. oktober 2004 - 03:13 #1
Mht. tid så prøv dette:

    setlocale( LC_TIME, "da", "da_DK", "da_DK.ISO8859-1", "dan", "danish" );
    $s1 = "Fri, 15 Oct 2004 00:45:12 +0200 (CEST)";
    $s2 = "14 Oct 2004 00:22:44 -0000";
    $t1 = strtotime( $s1 );
    $t2 = strtotime( $s2 );
    echo strftime( "$s1 = %H:%M, %a %d/%m '%y<br>", $t1 );
    echo strftime( "$s2 = %H:%M, %a %d/%m '%y<br>", $t2 );

Så ved du hvad jeg mener...

Mht. =?iso-8859-1?Q? så prøv:

  echo utf8_decode( imap_utf8( $subject ) );


:)
Avatar billede coderdk Praktikant
15. oktober 2004 - 03:15 #2
I mit tidseksempel for jeg korrekt:

Fri, 15 Oct 2004 00:45:12 +0200 (CEST) = 00:45, fre 15/10 '04
14 Oct 2004 00:22:44 -0000 = 02:22, tor 14/10 '04

som output... :)
Avatar billede madslc Nybegynder
15. oktober 2004 - 21:54 #3
Mht. tid
Jeg tror lige jeg skal have funktionen der uddybet. Jeg har en variabel $maildato, som jeg ønsker at fjerne det overflødige fra - og jeg ved ikke hvilken overflødig information de forskellige mails datoer har, da det er varierer - når jeg ikke med sikkerhed kan sige om $maildato har et indhold som svarer til $s1 eller om det svarer til $s2 eller noget helt tredje - kan den funktion så anvendes?

Mht. subject
Kan desværre ikke bruge imap-funktioner - kan det ordnes uden?


Jeg er søt på noget andet, som ligger lidt uden for emnet - opbevares information om læste poster på mailserveren? Er det muligt at give besked til mailserveren om at en post er læst og hente informationen igen? Jeg ved at jeg kan gøre det med en database, men så vil andre pop3-programmer, som outlook eller messenger+, ikke kunne vide hvilke som er læst.

Tak for interessen, coderdk!
Hjælp til dette er meget værdsat

Mvh.
Mads
Avatar billede coderdk Praktikant
15. oktober 2004 - 22:31 #4
strtotime() kan lave det meste om, men om den fanger alt hvad du kan smide imod den, ved jeg faktisk ikke... Du må bare prøve at se om den kan fange de varianter som du har... setlocale sørger sammen med strftime for at php kan skrive de danske ord ud til dig.

Jeg ved du sagde at din udbyder ikke understøttede IMAP, men er IMAP-modulet ikke tilgængeligt i php alligevel?!
Ellers er der en simpel funktion i brugerkommentarerne her: http://dk2.php.net/imap-utf8
Avatar billede madslc Nybegynder
16. oktober 2004 - 02:01 #5
Jeps! Kan både dekode dato og emne nu - tak!
Avatar billede coderdk Praktikant
16. oktober 2004 - 02:52 #6
Var så lidt :)
Avatar billede coderdk Praktikant
18. december 2004 - 14:16 #7
Tid til at lukke? ;)
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