Heey allemaal,

Ik ben al een aantal dagen bezig met het maken van een script dat een e-mail uitleest en dan het onderwerp en de inhoud van het bericht in een database zet.
Ik heb al een script gehad wat bijna werkt alleen als het e-mailtje dan een HTML indeling heeft dan krijg ik allemaal cijfers te zien.

Kan iemand mij hierbij helpen ik hoor het graag.

Mvg.

Mark H
Kun je misschien een gedeelte van dat script laten zien. En de tekst die in de database staat?
Dit is de code die in de database staat:


QmVzdGUgRGhyLiB2YW4gSGVlc2NoLA0KIA0KSGV0IG9wbGVpZGluZ3Nvcmtlc3QgdmFuIEhhcm1v
bmllIE5pam5zZWwgb3JnYW5pc2VlcnQgdm9vciBkZSBkZXJkZSBtYWFsIGluIHN1Y2Nlc3NpZSBo
ZXQgamFhcmxpamtzZSB0aGVtYWNvbmNlcnQuIERpdCBtYWFsIGlzIGhldCB0aGVtYSDigJxCZWFj
aCBQYXJ0eeKAnS4gVmFud2VnZSBkZSBlbm9ybWUgYmVsYW5nc3RlbGxpbmcgd29yZHQgZGl0IGph
YXIgdm9vciBoZXQgZWVyc3QgMiBtYWFsIG9wZ2V0cmVkZW4sIHRlIHdldGVuIG9wIHphdGVyZGFn
IDEyIGFwcmlsICBlbiB6b25kYWcgMTMgYXByaWwgYS5zLiByZXNwZWN0aWV2ZWxpamtlIG1ldCBk
ZSBhYW52YW5nc3RpamRlbiB2YW4gMTkuMzAgdXVyIGVuIDE0LjAwIHV1ci4gRGUgemFhbCBpcyBl
ZW4gaGFsZiB1dXIgdm9vciBhYW52YW5nIG9wZW4uIERlIHRvZWdhbmdzcHJpanMgYmVkcmFhZ3Qg
4oKsIDMsLSANCg0KTmFhc3QgaGV0IG9wbGVpZGluZ3Nvcmtlc3QgemlqbiBlciBnYXN0b3B0cmVk
ZW5zIHZhbiBkZQ0KDQpBY2NvcmRlb25vcmtlc3QgVGhlIEphdmVzLCBEYW5zZ3JvZXAgUGFzYSBk
ZWwgUm9tYSwgS2luZGVya29vciB1aXQgU2ludCBPZWRlbnJvZGUNCg0KUG9wYmFuZCAgRGlzb3Jk
ZXIgZW4gZGUgc29sb3phbmdlcmVzc2VuIERhbmnDq2xsZSB2YW4gTGVldXdlbiwgTWVyZWwgdmFu
IEFjaHQgR2VlcnRqZSBkZW4gT3R0ZXIgYWxsZSAzIGFma29tc3RpZyB1aXQgU2ludCBPZWRlbnJv
ZGUuDQoNCiANCg0KTWV0IHZyaWVuZGVsaWprZSBncm9ldCwNCk1hcmsgdmFuIEhlZXNjaA0KDQpU
UklETyBJVC1Hcm9lcA0KUG9zdGJ1cyA5NiwgNTQ5MCBBQiAgU2ludC1PZWRlbnJvZGUNClBlYXJs
IFMuIEJ1Y2tzdHJhYXQgMWEsIDU0OTEgREcgU2ludC1PZWRlbnJvZGUNClRlbC4gMDQxMyA0ODYw
NTAgLSBtdmhlZXNjaEB0cmlkby5ubA0KDQoNCg==



Dit is mijn php code IMAP


<?
include "../dbconnection.inc.php";
/** Instellingen van je server **/
$server = '..nl';
$port = 143; // Standaard imap poort
/** Mail-acount gegevens **/
$username = '@.nl'; // [email protected]
$password  = ''; // wachtwoord
/** Verbinden met mailbox **/
$mbox = imap_open('{' . $server . ':' . $port . '}INBOX', $username, $password);
$headers = imap_headers($mbox);
$info = imap_mailboxmsginfo($mbox);
$aantalberichten = $info->Nmsgs;
if ($headers == false)// als er geen verbinding was of geen email dan error weergeven.
{
   echo "Geen berichten!<br>";
}
else
{

   while (list ($key, $val) = each ($headers))  // gewoon de email whilen die in de op de server staan
   {
       $val;
	   $id = substr($val, 9, 1);
       // de gegevens ophalen: 
       // $bericht =  imap_body($mbox, $id);
		$data = imap_headerinfo($mbox, $id); // hiermee haal je allerlei aanvullende gegevens over het bericht op. naar wel adres het is gestuurd maar ook de datum en het onderwerp. Tevens kan je zo alls 'flags' opvragen.
		$onderwerp = $data->subject;
		$datum = $data->date;
		$bericht = imap_body ($mbox, $id);
		
        echo '<b>Afzender:</b> '.$data->fromaddress.'<br>';
        echo '<b>Onderwerp:</b> '.$data->subject.'<br>';
        echo '<b>Bericht:</b><br>'.$bericht.'<br>';
		echo '<b>Ontvangen:</b> '.$data->date; 
		echo"<hr>";
		$sql = mysql_query(" INSERT INTO `mail`(`onderwerp`,`bericht`,`datum`)VALUES('$onderwerp','$bericht','$datum')");
		imap_delete($mbox, $id); 
		imap_expunge($mbox);

    }

}


imap_close($mbox);
?>
In dit script: http://www.phphulp.nl/php/scripts/2/1302/ worden mailboxen uitgelezen en het onderwerp enzo weergegeven en de berichten verwijderd. Met een paar aanpassingen ben je erzo.
This is a multi-part message in MIME format.

Krijg ik en dat krijg ik ook met mijn eigen script wat ik nu heb een andere script weer. ( wat wel heel traag is) de IMAP Niet
dan bevat je bericht bijlage (b.v. afbeeldingen) of is hetzowel in plain text als in html verstuurd.
Heb je imap_body al geprobeerd?
Ja heb ik geprobeerd script is ook aangepast
En wat als je het bericht echo't op het scherm? Krijg je dan ook allemaal rare tekens te zien?
Zo ja --> Het zit hem in je script
Zo nee --> het zit hem in je database
Ja zit in mijn script maar ik weet niet wat!
als je eens de content-type op multi-part zet?
@allemaal
Dit is een base64 geencodeerde string.

Gewoon decoden met base64_decode();

Zie www.php.net/base64.

Reageren