POP3 Naar MYSQL
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
QmVzdGUgRGhyLiB2YW4gSGVlc2NoLA0KIA0KSGV0IG9wbGVpZGluZ3Nvcmtlc3QgdmFuIEhhcm1v
bmllIE5pam5zZWwgb3JnYW5pc2VlcnQgdm9vciBkZSBkZXJkZSBtYWFsIGluIHN1Y2Nlc3NpZSBo
ZXQgamFhcmxpamtzZSB0aGVtYWNvbmNlcnQuIERpdCBtYWFsIGlzIGhldCB0aGVtYSDigJxCZWFj
aCBQYXJ0eeKAnS4gVmFud2VnZSBkZSBlbm9ybWUgYmVsYW5nc3RlbGxpbmcgd29yZHQgZGl0IGph
YXIgdm9vciBoZXQgZWVyc3QgMiBtYWFsIG9wZ2V0cmVkZW4sIHRlIHdldGVuIG9wIHphdGVyZGFn
IDEyIGFwcmlsICBlbiB6b25kYWcgMTMgYXByaWwgYS5zLiByZXNwZWN0aWV2ZWxpamtlIG1ldCBk
ZSBhYW52YW5nc3RpamRlbiB2YW4gMTkuMzAgdXVyIGVuIDE0LjAwIHV1ci4gRGUgemFhbCBpcyBl
ZW4gaGFsZiB1dXIgdm9vciBhYW52YW5nIG9wZW4uIERlIHRvZWdhbmdzcHJpanMgYmVkcmFhZ3Qg
4oKsIDMsLSANCg0KTmFhc3QgaGV0IG9wbGVpZGluZ3Nvcmtlc3QgemlqbiBlciBnYXN0b3B0cmVk
ZW5zIHZhbiBkZQ0KDQpBY2NvcmRlb25vcmtlc3QgVGhlIEphdmVzLCBEYW5zZ3JvZXAgUGFzYSBk
ZWwgUm9tYSwgS2luZGVya29vciB1aXQgU2ludCBPZWRlbnJvZGUNCg0KUG9wYmFuZCAgRGlzb3Jk
ZXIgZW4gZGUgc29sb3phbmdlcmVzc2VuIERhbmnDq2xsZSB2YW4gTGVldXdlbiwgTWVyZWwgdmFu
IEFjaHQgR2VlcnRqZSBkZW4gT3R0ZXIgYWxsZSAzIGFma29tc3RpZyB1aXQgU2ludCBPZWRlbnJv
ZGUuDQoNCiANCg0KTWV0IHZyaWVuZGVsaWprZSBncm9ldCwNCk1hcmsgdmFuIEhlZXNjaA0KDQpU
UklETyBJVC1Hcm9lcA0KUG9zdGJ1cyA5NiwgNTQ5MCBBQiAgU2ludC1PZWRlbnJvZGUNClBlYXJs
IFMuIEJ1Y2tzdHJhYXQgMWEsIDU0OTEgREcgU2ludC1PZWRlbnJvZGUNClRlbC4gMDQxMyA0ODYw
NTAgLSBtdmhlZXNjaEB0cmlkby5ubA0KDQoNCg==
bmllIE5pam5zZWwgb3JnYW5pc2VlcnQgdm9vciBkZSBkZXJkZSBtYWFsIGluIHN1Y2Nlc3NpZSBo
ZXQgamFhcmxpamtzZSB0aGVtYWNvbmNlcnQuIERpdCBtYWFsIGlzIGhldCB0aGVtYSDigJxCZWFj
aCBQYXJ0eeKAnS4gVmFud2VnZSBkZSBlbm9ybWUgYmVsYW5nc3RlbGxpbmcgd29yZHQgZGl0IGph
YXIgdm9vciBoZXQgZWVyc3QgMiBtYWFsIG9wZ2V0cmVkZW4sIHRlIHdldGVuIG9wIHphdGVyZGFn
IDEyIGFwcmlsICBlbiB6b25kYWcgMTMgYXByaWwgYS5zLiByZXNwZWN0aWV2ZWxpamtlIG1ldCBk
ZSBhYW52YW5nc3RpamRlbiB2YW4gMTkuMzAgdXVyIGVuIDE0LjAwIHV1ci4gRGUgemFhbCBpcyBl
ZW4gaGFsZiB1dXIgdm9vciBhYW52YW5nIG9wZW4uIERlIHRvZWdhbmdzcHJpanMgYmVkcmFhZ3Qg
4oKsIDMsLSANCg0KTmFhc3QgaGV0IG9wbGVpZGluZ3Nvcmtlc3QgemlqbiBlciBnYXN0b3B0cmVk
ZW5zIHZhbiBkZQ0KDQpBY2NvcmRlb25vcmtlc3QgVGhlIEphdmVzLCBEYW5zZ3JvZXAgUGFzYSBk
ZWwgUm9tYSwgS2luZGVya29vciB1aXQgU2ludCBPZWRlbnJvZGUNCg0KUG9wYmFuZCAgRGlzb3Jk
ZXIgZW4gZGUgc29sb3phbmdlcmVzc2VuIERhbmnDq2xsZSB2YW4gTGVldXdlbiwgTWVyZWwgdmFu
IEFjaHQgR2VlcnRqZSBkZW4gT3R0ZXIgYWxsZSAzIGFma29tc3RpZyB1aXQgU2ludCBPZWRlbnJv
ZGUuDQoNCiANCg0KTWV0IHZyaWVuZGVsaWprZSBncm9ldCwNCk1hcmsgdmFuIEhlZXNjaA0KDQpU
UklETyBJVC1Hcm9lcA0KUG9zdGJ1cyA5NiwgNTQ5MCBBQiAgU2ludC1PZWRlbnJvZGUNClBlYXJs
IFMuIEJ1Y2tzdHJhYXQgMWEsIDU0OTEgREcgU2ludC1PZWRlbnJvZGUNClRlbC4gMDQxMyA0ODYw
NTAgLSBtdmhlZXNjaEB0cmlkby5ubA0KDQoNCg==
Dit is mijn php code IMAP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?
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);
?>
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);
?>
Gewijzigd op 01/01/1970 01:00:00 door Mark H
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.
In dit script: 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
Ja heb ik geprobeerd script is ook aangepast
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?
En hoe ruik je dat? Of weet je dat?
Alsjeblieft zeg... jij hebt zo ontzettend geen ervaring in de programmeerwereld. Als je zelfs ooit met base64 hebt gewerkt dan weet je hoe een base64 string eruit ziet.
Mazzel.
Ga maar lekker die voorbeeld string decoderen en kom dan maar terug. Adios.
Edit: ooit éénkeer er mee gewerkt maar dat was een gecodeerde string van 4 letters, dus nee ik zou bij god niet weten dat het bas64 was.
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
Ga desnoods op wikipedia kijken waarom base64 zo handig is.
Voor in een URL data te stoppen, maar dan snap ik nog niet waar het handig voor is, als iemand die data wil lezen doen hij dat toch wel..
Als jij data hebt waar gekke tekens in voorkomen die post dan fukt ie alles op. Met base64 encodeert het naar gebruikte tekens; ASCII model.
Open eens een jpeg in kladblok en je snapt wat ik bedoel.
Base64 codeert dit om te kunnen versturen over het net, dan decodeer je het bestand weer en maak je daar adhv de juiste extensie een bestand van.
Ik ben op zoek naar het script waar jij mee bezig bent. Ik ben een beginnend PHP-er en erg geinteresseerd in scripting. Ik vind het machtig mooi.
Werkt je script inmiddels al. Zo ja, zou ik het mogen gebruiken?
Groeten,
Jos.
Je kunt een base64 encrypted-string herkennen aan de twee '==' aan het einde. Heel erg typerend voor een base64 string.
GaMer13 schreef op 18.05.2008 22:28:
Je kunt een base64 encrypted-string herkennen aan de twee '==' aan het einde. Heel erg typerend voor een base64 string.
Soms is er ook een enkele = :-).
Maar iig, als je rare tekst met een of twee ='en op het end ziet, dan is het voor 99% zeker dat het base64 is.
Verder ligt het gewoon vast dat als er een bijlage bij een mailtje zit dat dat in base64 wordt geencoded. Dat staat d'r ook in de header.