Gå til innhold

Legge innkommende mail på web


Anbefalte innlegg

Hei..

 

Jeg trenger litt hjelp med en php løsning jeg skal ha. Jeg har en webside som jeg skal kunne legge inn korte kommentarer på ved å sende mail til en webadresse.

Det er litt vanskelig å forklare, men det skal fungere omtrent som følgende.

Jeg sender en mail til "[email protected]" (skal være en annen adresse da seff :p) Jeg skal i emnet på mailen skrive en forhåndsbestemt kode f.eks "tilweb". php skriptet skal da logge seg inn på mail kontoen med gjevne mellomrom og hente ut alle mailene med tittelen "tilweb" og putte i den php eller html fil slik at det kan leses for alle på nettet.

 

Er det noen som veit om noe slikt script finnes alle rede eller om noen har noe tips til hvordan dette kan gjøres, gjerne med et lite utkast siden jeg ikke er alt for "skarp" i php, men kan litt da..

 

Takker for all eventuel hjelp :)

Lenke til kommentar
Videoannonse
Annonse
Har du planer om å bruke en hotmail- eller liknende mail-konto??

For å logge inn på mailkontoen blir du antakeligvis nødt til å bruke curl. Og så sette opp en cron job til å kjøre scriptet hver time eller noe.

8618317[/snapback]

 

Er ikke hotmail nei.. er nmtp og pop tilgang på serveren.

Lenke til kommentar

Jeg har gjort relativt store fremskritt med å lage alt fra bunn av og bruke imap funksjonen. Koden er langt i fra ferdig og nå leser den ut alle eposter, fra nyeste først til gamleste til sist (tok en reverse loop, viste ikke at det gikk gitt :p)

Koden viser:

dato

avsender

tittel

teksten i mailen.

 

Skal suse litt mer med den før jeg ser meg ferdig, men her er i hvertfall V 0.1

<?php
$mbox = imap_open ("{IMAP_SERVER:143}", "BRUKERNAVN", "PASSORD");

//Finner antall mailer i innbox
$number = imap_num_msg ($mbox);

echo "<hr width=100%>";
for($i = $number; $i > 0; $i--) { 
      $header = imap_header($mbox,$i); 
     //dato på mailen
     $dato = htmlspecialchars($header->date); 
     echo $dato."<br>\n"; 
     //fra adresse
     $from = htmlspecialchars($header->fromaddress); 
     echo $from."<br>\n"; 
     // Subjekt i mailen
     $sub = htmlspecialchars($header->subject); 
     echo $sub."<br>\n"; 
     //innhold i mailen
        $body = imap_body ($mbox,$i);
     echo $body."<br>\n";
     echo "<hr width=100%>";
} 

imap_close($mbox);

?>

 

Hvis noen ser noen grove feil her så er det bare å si ifra..

Endret av alos
Lenke til kommentar
Gjest Slettet+142

Jeg tror dette er feil;

$mbox = imap_open ("{IMAP_SERVER:143}", "BRUKERNAVN", "PASSORD");

 

{ og } skal ikke være rundt :143 vil jeg tro...

Lenke til kommentar

Da var koden ferdig. Tenkte jeg kan poste den ferdige koden hvis noen andre skulle finne på å ha bruk for den.

 

Tanken bak koden var at jeg og en kammerat skal på tur noen måneder, vi har ikke tilgang til web, men kan ta en telefon nå og da(veldig skjeldent da vi må ringe med sattelitt telefon). Vi har en hjemmeside om turen så tanken var at hivs vi ringte hjem til noen så kunne di oppdatere hjemmesiden med små kommentarer ved å sende en mail med et forhåndsbestemt subjet til en spesifikk e-post. Kanskje litt tungvindt, men tror det er det enkleste da man ikke trenger å være veldig datakyndig for å sende en mail :p

 

Uansett, under er koden, i eksempelet må mailen ha tittel med "yoyo" for å vises på siden, andre mailer vil man ikke se. Man vil også se hvem som har sendt den og når.

 

<?php
$mbox = imap_open ("{IMAP_SERVER:143}", "E_POST", "PASSORD");

//Finner antall mailer i innbox
$number = imap_num_msg ($mbox);
//kode er det det må stå i tittelen på mailen for at det skal vises
$kode = "yoyo";

echo "<hr width=100%>";
for($i = $number; $i > 0; $i--) { 
$header = imap_header($mbox,$i); 
$sub = htmlspecialchars($header->subject);

If ($kode == $sub):	
//dato på mailen
$dato = htmlspecialchars($header->date); 
echo $dato."<br>\n"; 
//navn
 $navn = htmlspecialchars($header->from);
 $from = $header->from; 
       if (is_array($from)){ 
       while(list($key, $val) = each($from)) { 
       echo $from[0]->personal; 
       	} 
       } 
 echo $navn."<br>\n"; 
//innhold i mailen
   $body = imap_body ($mbox,$i);
echo $body."<br>\n";
echo "<hr width=100%>";
else:
endif;
} 

imap_close($mbox);

?>

Endret av alos
Lenke til kommentar

Hadde det ikke vært enklere for alle med bare en webside som hadde et lite tekstfelt der man skrev inn et kodeord og et stort tekstfelt der man skrev inn posten? Trenger ikke være veldig datakyndig for å fylle ut et webskjema.. :p

 

OT: Hva slags ekspedisjon er det du skal på? :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...