bild(er) aus email-quelltext lesen
conrad
- php
0 Vinzenz Mai0 conrad
hallo,
ich habe folgenden EMAIL quelltext:
######################################START
From Sat Oct 14 01:09:42 2006
Received: from laptop ([80.64.176.29])
(authenticated bits=0)
by (8.13.1/8.13.1/SuSE Linux 0.7) with ESMTP id k9DN9Zrx018501
for ; Sat, 14 Oct 2006 01:09:37 +0200
Return-Receipt-To:
Reply-To:
From:
To:
Subject:
Date: Sat, 14 Oct 2006 01:09:28 +0200
Message-ID: <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAA+2epvdNyQEqHeKPsiSlHjMKAAAAQAAAAULrSu1Sj00ivc2V+EvAFLwEAAAAA@>
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_014B_01C6EF2D.67524710"
X-Mailer:
Thread-Index: AcbvHKIC1GJAn5ldRY627i6jCrf+Kw==
X-MimeOLE: Produced By
Disposition-Notification-To:
This is a multi-part message in MIME format.
------=_NextPart_000_014B_01C6EF2D.67524710
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_014C_01C6EF2D.67524710"
------=_NextPart_001_014C_01C6EF2D.67524710
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
------=_NextPart_001_014C_01C6EF2D.67524710--
------=_NextPart_000_014B_01C6EF2D.67524710
Content-Type: image/jpeg;
name="nova.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="nova.jpg"
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+IMWElDQ19QUk9GSUxFAAEB
AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IA
------=_NextPart_000_014B_01C6EF2D.67524710
Content-Type: image/gif;
name="r7.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="r7.gif"
R0lGODlh5gCtAPcAAMZkN4M2J3slGO58dPZ9eU4oMvN8c4NDN+erqMhmQ3RyaElMLUsySDFFEYV5
eeh5aPeGg/+SjrpiMfz8+faKirljU9GPint7eoQnGW1oVrxZNPeKhstZR8VZNrdXKk9LT3YTD6hM
------=_NextPart_000_014B_01C6EF2D.67524710
Content-Type: image/png;
name="anwendung4.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="anwendung4.png"
iVBORw0KGgoAAAANSUhEUgAAAfsAAAHFCAMAAADCJaA9AAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALrUExURf///9fTywgkaQAAAHdzWIh0UGhn
------=_NextPart_000_014B_01C6EF2D.67524710--
######################################ENDE
und ich habe folgendes autoresponder.php script:
######################################START
#!/usr/bin/php -q
<?
$fp = fopen('php://stdin','r');
$test = "";
$test2 = "";
$image = "";
while( !feof($fp) ) {
$data=fgets($fp,4096);
$data=chop($data);
$test .= "".$data."\n";
if ( !isset($headerEnd) )
{
// bei der ersten Uebereinstimmung den Betreff dauerhaft speichern
if (eregi("^Subject: ", $data) && !isset($subject)) {
$subject = preg_split("'^Subject:'",$data);
$subject = trim($subject[1]);
}
// bei der ersten Uebereinstimmung den Betreff dauerhaft speichern
if (eregi("^From: ", $data) && !isset($from)) {
$from = preg_split("'^From:'",$data);
$von = trim($from[1]);
}
// bei der ersten Uebereinstimmung den Betreff dauerhaft speichern
if(eregi("^Content-Type", $data))
{
//$image = preg_split("'^Content-Transfer-Encoding: base64'",$data);
//$image .= "Content-Type was found\n\n";
$image = $data;
//$image = trim($from[1]);
}
// Ist das Ende des Header erreicht?
if ( $data == "" ) {
$headerEnd = TRUE;
}
}
}
fclose($fp);
preg_match("/[\w-.]+@[\w-.]+[.][\w]+/", $von, $von);
$von = strtolower($von[0]);
//$content = "Von: ".$von."\n";
//$content .= "Betreff: ".$subject."";
$content = "image: ".$image."\n\n\n\n";
$content .= $test;
?>
######################################ENDE
Betreff, From, To kann ich ohne probleme auslesen.
Wie kann ich aber die z..b. 3 Dateien (Bilder) auslesen?
bekomme es irgendwie nicht hin.
oder gibt es dafür evtl. schon ein script?
Hallo Conrad,
Content-Type: image/jpeg;
name="nova.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="nova.jpg"
Was sagt Dir das?
Wie kann ich aber die z..b. 3 Dateien (Bilder) auslesen?
bekomme es irgendwie nicht hin.
oder gibt es dafür evtl. schon ein script?
Wie komme ich wohl auf die Idee, dass Dir base64_decode() helfen könnte?
Freundliche Grüße
Vinzenz
hi,
das weiß ich ja auch, dass ich es noch decoden muß.
aber wie bekomme ich mit MEINEM script den base64 code herraus?
bzw. das automatisch bei allen bildern mit dem jeweiligen richtigen bildnamen?
Hallo Conrad,
das weiß ich ja auch, dass ich es noch decoden muß.
aber wie bekomme ich mit MEINEM script den base64 code herraus?
indem Du die entsprechenden Header analysierst, RFC2045 und verwandte RFCs könnten Dir dabei helfen, wenn Du das willst.
Sind die folgenden Zeilen
Content-Type: image/jpeg;
name="nova.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="nova.jpg"
wirklich so schwer zu lesen? Wenn ja, ...
bzw. das automatisch bei allen bildern mit dem jeweiligen richtigen bildnamen?
... so empfehle ich Dir den Einsatz des PEAR-Pakets Mail_Mime, speziell Mail_mimeDecode::decode() kann die meiste Arbeit für Dich erledigen.
Freundliche Grüße
Vinzenz