17. maj 2004 - 10:30Der er
43 kommentarer og 1 løsning
Fra mail til webside.
Hejsa
Jeg vil gerne kunne sende en e-mail (fra mobilos) til en postkasse, som så bliver checket og hvor indholdet bliver lagt ud på en hjemmeside.
Jeg har IKKE egen server til rådighed, men kan få lavet cronjobs..
Er der nogen der kan hjælpe mig med det? Kan man overhovedet checke mail med php gennem pop3? (Det må ikke være imap, da jeg ikke kan finde et hotel der stiller det til rådighed gratis)..
Du kan få en gratis, ikke commerciel konto hos Flexwindow
Indebærer at indholdet sendes til deres server, og du får så vist indholdet på din side via en lille script, som placeres hvor mailens indhold skal vises. Du kan endvidere sende det allerede oprettede indhold til dig selv.
jakobdo>> Kunne du uddybe det lidt ;-) Det ville være fedt at se lidt kode...
hammerhead>> Det ser spændende ud, men allerhelst ville jeg selv have kontrol over det hele... Ved denne løsning er det også kun mig der kan sende til siden - med mindre jeg uddeler passwordet til alle... :-/
Jeg har prøvet http://popmail.8bit.co.uk/ og det virker (altså ikke som jeg vil have det til, men det kan checke min pop3-mail)..
Og så har jeg prøvet den her relativt simple kode.. Som også virker - ud over at den ikke viser "body'en" af en email - kun subject og andre oplysninger... Kunne man få den til at vise body delen af en mail?
sandbox>> Jeg refererer lige fra mit spørgsmåls beskrivelse: "Det må ikke være imap, da jeg ikke kan finde et hotel der stiller det til rådighed gratis"...
Synes godt om
Slettet bruger
17. maj 2004 - 22:39#8
Så kan jeg jo passende referere (og skære ud i pap) fra mit indlæg: PHPs imap-funktioner kan også snakke med en POP3-server. Så du kan godt bruge PHPs indbyggede imap-funktioner selv om du ikke har en IMAP-postkasse.
;-) Så finder jeg så den endnu større saks frem og viser dig, at det ikke er imap på postkassen der er problemet, men imap på det hotel (server) der kører mine phpfiler...
Synes godt om
Slettet bruger
17. maj 2004 - 23:09#10
Så beklager jeg, at jeg misforstod. Jeg havde faktisk regnet med at de funktioner var en del af en standard PHP-opsætning.
Til gengæld vidste jeg godt, at man de fleste steder kun kan få POP3-postkasser, og ikke IMAP. Det var derfor jeg troede, at det var i den ende problemet lå.
OK, så har vi fundet ud af, at det bare var linierne efter while-løkken, som var lidt for hidsige med at fjerne data.
Så kan du lave
echo $linje . "<br />";
tilbage til
$posttekst .= $linje;
Og så er det lidt et spørgsmål om, hvor meget forskelligt, du skal kunne modtage. F.eks. hvis der er tale om en ren tekst-mail uden vedhæftede filer, så er der nemlig slet ikke den "quoted-printable"-tekst, som den oprindelige søger efter, og så springer den de første 17 bogstaver af den regulære mail over. Derudover vil der heller ikke være den "------=" til sidst, og så sletter den alt. (Og selv hvis den linie er der, så behøver den ikke nødvendigvis se nøjagtig sådan ud. Breve her fra Eksperten har for eksempel kun 2 minusser: --=_ )
For ikke at skulle lave en komplet mailklient, som kan forstå enhver mail, vil jeg foreslå dig at se på den rå kildetekst til mails, som den skulle fortolke.
.... send an email with my new phone. Please respond if you recieve this, and tell me if you se the picture attached.. :-) --mimemk00 Content-Type: image/jpeg; name="04051200.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="04051200.JPG"
Herefter en masse af samme slags og så slutter den med:
zgRrlentRJ20BIhSXOKuwNyAamOhUlc//9k=
--mimemk00--
Beklager at jeg er lidt hjælpeløs, men jeg kæmper med at forstå hvad det er der sker og det er ikke nemt at finde hjælp andre steder end her...
Synes godt om
Slettet bruger
18. maj 2004 - 01:12#18
OK, der er tre opgaver:
1) få pillet selve tekst og billede.ud 2) konvertere billedet til noget brugbart med base64_decode()-funktionen 3) Gemme billedet og derefter vise det.
Muligvis kan det lade sig gøre at vise billedet direkte med et <object>-element i stil med:
Hvor det ser ud til at de kan afkode mime - men det er til imap og jeg kan ikke lige gennemskue at oversætte det...
Jeg er heller ikke helt sikker på, at jeg har alt med til mimedelen.. Består den kun af de "sjove" tegn, eller skal "--mimemk00", "Content-Disposition: attachment" o.s.v. også med??
Synes godt om
Slettet bruger
18. maj 2004 - 23:26#21
Jeg går ud fra, at du har fundet ud af at pille teksten ud så?
Til billedet skal du kun bruge selve linierne med de underlige bogstaver. Resten burde ikke ændres medmindre du skifter telefon. (Jo filnavnet måske, men der er det smartere at lave et selv på serveren.)
Nææ.. jeg har ikke fundet ud af hvordan jeg skal få selve koden pillet ud, men nu prøver jeg bare, hvor jeg har kopieret koden manuelt ind i $str-variablen.... Så må det løses senere.. :-)
Jeg har prøvet din kode og der bliver også oprettet et .jpg billede, men det kan ikke vises - heller ikke hvis jeg downloader billedet kan det bruges...
Nu har jeg lavet en ting, som kan finde ud af om der er et billede i mailen.. Men hvordan piller jeg alt mellem .JPG" og --mimemk00-- ud, så det kun er det der står i $str der bliver decoded???
Synes godt om
Slettet bruger
20. maj 2004 - 21:29#27
Det vil jeg så kalde en bug i base64_decode(), for i MIME-standarden står udtrykkeligt, at tegn, der ligger udenfor bare skal ignoreres. Det står i afsnit 6.8 af http://www.faqs.org/rfcs/rfc2045 lige efter tabellen med gyldige tegn. Men skidt, nu ignorerer vi det i stedet for at lade decoderen gøre det ;-)
Synes godt om
Slettet bruger
20. maj 2004 - 21:29#28
Det skal vi også bruge en regexp til. Øjeblik, jeg tænker lige.
Så har jeg *næsten* fundet ud af at trække filnavnet ud af strengen... preg_match("/filename=\"(.*)\"/", $formeget, $filnavnet); echo $filnavnet[0];
Men desværre skriver den: filename="04051400.JPG" og tager altså for meget med.. og med selve mimedelen kan jeg skutte rigtigt få det til at fungere.... preg_match("/.jpg\"(.*)--mime/", $formeget, $str); echo $str[0];
giver bare en tom streng.... :-/
Synes godt om
Slettet bruger
20. maj 2004 - 22:26#31
Nu har jeg lavet noget, som jeg regner med vil virke. Det skal sættes ind ved (og erstatte) while-løkken i det script, du postede tidligere. Bemærk at denne gang har jeg ændret linien lige før løkken.
Det er ikke for at være uhøflig, men din sidste post smed mig af - og jeg kan bedst lide, når jeg forstår koden i de scripts jeg bruger.... Og det behøver ikke at være så advanceret, som du foreslår... Så vidt jeg kan se er det i linien:
preg_match("/\r\n\r\n.*$/s",$mimepart,$indhold);
at du gør nogenlunde det jeg gerne vil kunne... altså at pille alt mellem .jpg" og --mime ud... Jeg ved jeg er krævende :-)
Synes godt om
Slettet bruger
21. maj 2004 - 00:40#35
OK, så lad os prøve en simplere udgave, som bare går ud fra, at der måske er en tekst, og måske et billede, og ikke mere.
Og det kan den tydeligvis ikke kapere... Det bliver i hvert tilfælde ikke til et billede.... Jeg har brugt din idé fra tidligere om at fjerne uvedkomne tegn, så forslaget nu ser således ud:
:-) Det virker stadigt ikke... if (preg_match("/JPG\"[^A-Za-z0-9+\/=]*(.*)--/sU", $dethele, $billedmatch)){ tager stadig for meget med og: if (preg_match("/text\/plain/",$contenttype)){ echo $dethele; } Får ikke det sidste til at blive udskrevet også....
Men det er det første problem der bekymrer mig mest... Det sidste kan jeg måske nog finde ud af senere....
sandbox>> vil du ikke lige ligge et svar, så jeg kan komme af med lidt point...
Synes godt om
Slettet bruger
23. maj 2004 - 16:42#43
Jo, det kommer her. Godt, at du fandt ud af det.
Jeg havde overvejet at lave noget lignende selv, så jeg kan måske få inspiration fra din kode. (Dog ikke så meget, for jeg vil nok køre noget på min mailserver, som smider posten direkte i database.)
Der er stadig en hel del at gøre, men indtil videre kører det da...
Synes godt om
Ny brugerNybegynder
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.