Mail opslaan in database
Momenteel ben ik bezig met het maken van een simpel scriptje die e-mails kan opslaan in een database. Eerste wil ik een goede output op het scherm creeren zodat ik zeker weet dat het goed werkt.
Nu heb ik hier het volgende stukje code.
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
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
<?php
$imap_user = "**geheim**";
$imap_pass = "**geheim**";
$imap_server = "{**geheim**}";
$mbox = imap_open("{$imap_server}INBOX", $imap_user, $imap_pass);
$sorted_mbox = imap_sort($mbox, SORTDATE, 0);
$totalrows = imap_num_msg($mbox);
print "$imap_server <br>";
$startvalue = 0;
while ($startvalue < $totalrows) {
$headers = imap_fetchheader($mbox, $sorted_mbox[ $startvalue ] );
$body = imap_body($mbox, $sorted_mbox[ $startvalue ] );
$subject = array();
$from = array();
$to = array();
preg_match_all('/^Subject: (.*)/m', $headers, $subject);
preg_match_all('/^From: (.*)/m', $headers, $from);
preg_match_all('/^To: (.*)/m', $headers, $to);
print $subject[1][0] . "<br>";
print $from[1][0]. "<br>";
print $to[1][0]. "<br>";
print $body . "<br> <br>";
$startvalue++;
}
?>
$imap_user = "**geheim**";
$imap_pass = "**geheim**";
$imap_server = "{**geheim**}";
$mbox = imap_open("{$imap_server}INBOX", $imap_user, $imap_pass);
$sorted_mbox = imap_sort($mbox, SORTDATE, 0);
$totalrows = imap_num_msg($mbox);
print "$imap_server <br>";
$startvalue = 0;
while ($startvalue < $totalrows) {
$headers = imap_fetchheader($mbox, $sorted_mbox[ $startvalue ] );
$body = imap_body($mbox, $sorted_mbox[ $startvalue ] );
$subject = array();
$from = array();
$to = array();
preg_match_all('/^Subject: (.*)/m', $headers, $subject);
preg_match_all('/^From: (.*)/m', $headers, $from);
preg_match_all('/^To: (.*)/m', $headers, $to);
print $subject[1][0] . "<br>";
print $from[1][0]. "<br>";
print $to[1][0]. "<br>";
print $body . "<br> <br>";
$startvalue++;
}
?>
De subject, from, to en body velden laat die netjes onder elkaar zien. Het probleem zit hem in de body.
Hierin komen vaak plaatjes voor (Signatures) waar die niet goed mee kan omgaan.
Dan krijg ik bv dit:
------=_NextPart_001_0001_01CC00C3.E8B5C0F0-- ------=_NextPart_000_0000_01CC00C3.E8B5C0F0 Content-Type: image/gif; name="image001.gif" Content-Transfer-Encoding: base64 Content-ID: R0lGODlhjAJiAPcAAAAAAP///+pmbOE/SvWzt/vP0twoNvGQl1xMTrCqq4eEhdPR0p2MmHtqd454 lLqqvldFXmdXbqics5+YpnZ1d5aGq25ke1VGcHZokUg1bouEmd7Y7GlblJ+Wu1dJhnhro15SjZeN v7m2xTQnbTowaL232RMOOx4aQVNLljUxeC0rTSwpcT47iEVEj0NDVrW12MbG4tjY697e7/v7//b2 +v7+//39/vz8/XN1r46PwqChzry93BYaXx8iaXl8tpiaya+x1dHS6AgNUpCUxWJpqoSJvVpjpu3u 9h0shSo3i09aoWdyrqSq0eTm8fHy+CAxiTpKl8vP5BsseUNTm5OdxbG41bW82dLW59zf7ODj797h 7ejq8+rs9PP0+B81hyE3iCU6iipBkSk+jC1Bji9DkDFGkTVJkzpNlT5RmEdZnExdn1Jjollppl9v qWl4r259snyJuYeTvpulyqOszsLI3sbM4dnd6xs3jnSEt9Xa6k9hkam00rzE3O7w9vf4+g04hhFB jhxKlyRQmTReplp8tSJUn3SWwwA/iRRQmiBZojNprOXs9QNKlxJTn0l9tYGjyBJbpPr7/ABRnBJj q8PU5DtBRfj6+0dQU2lyclNXV/3+/lxiYQMTDAQgEvv9/OXu6ZvGrYqRjTuFWFiZcpO/pavIt9Hi 2PL39AJrKg5qMSJ0Qoewl7nTw+vz7gFjIw0pF3miiMjWzd3p4aa5rB0zITE+M/3+/Rs9Gi5mJRox
Mijn vraag, hoe kan ik voorkomen dat het script plaatjes meeneemt uit de body?
Alvast bedankt voor de reacties
Mvg,
Ronald
Je zou een script kunnen schrijven dat zoekt naar een bepaalde set van keywords die deze signatures bevatten zoals 'Content-Type: image/gif; name="image001.gif" Content-Transfer-Encoding: base64 Content-ID: '. Wanneer een dergelijk keyword wordt gevonden in je e-mail, kun je vervolgens de eerstvolgende spatie zoeken na bovengenoemd keyword en tenslotte alle tekst vanaf het keyword tot deze spatie verwijderen.
Ik zat ook te denken is het niet mogelijk de tekst selecteren tot een bepaald critirium zoals 'Met vriendelijke groet'.