Avatar billede morten_linder Praktikant
06. oktober 2004 - 21:40 Der er 16 kommentarer

MIME dekode - array

Hej kloge hoveder

jeg får en mail som ren tekst fra STDIN.

Den skal jeg så have noget brugbart ud af.

Der vil jeg gerne pille ALT mime-fis ud, så jeg ender med den originale header og kun den tekst der står i klar tekst.

Anyone?
Avatar billede bojo Nybegynder
07. oktober 2004 - 07:08 #1
jeg har aldrig set alt det der "mime-fis", drop det her så ser jeg om det er noget jeg kan klare og andre gør nok det samme
Avatar billede morten_linder Praktikant
07. oktober 2004 - 07:47 #2
From morten@linder.dk  Sun Oct  3 03:16:38 2004
Return-Path: <morten@linder.dk>
Received: from www.linder.dk ([195.184.32.204])
        by data3.dk (8.12.11/8.12.11) with ESMTP id i931GbBJ015116
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
        for <morten@data3.dk>; Sun, 3 Oct 2004 03:16:37 +0200
Received: from morten ([212.130.178.210])
        by www.linder.dk (8.12.11/8.12.9) with SMTP id i92DABv5029178
        for <morten@data3.dk>; Sat, 2 Oct 2004 15:10:11 +0200
Message-ID: <00c101c4a881$72c72d80$2201a8c0@morten>
From: "Morten Linder" <morten@linder.dk>
To: <morten@data3.dk>
Subject: test
Date: Sat, 2 Oct 2004 15:12:15 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
        boundary="----=_NextPart_000_00BE_01C4A892.333F8930"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

This is a multi-part message in MIME format.

------=_NextPart_000_00BE_01C4A892.333F8930
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

test
------=_NextPart_000_00BE_01C4A892.333F8930
Content-Type: text/html;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2180" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>test</FONT></DIV></BODY></HTML>

------=_NextPart_000_00BE_01C4A892.333F8930--
Avatar billede morten_linder Praktikant
07. oktober 2004 - 07:49 #3
det var en mail i klar tekst. Det som jeg er interesseret i, er bare at bevare headeren, og det der står i cleartext.

teksten er defineret af Content-Type: text/plain, alt efter denne del af mailen er uinteressant, og alt det der står fra This is a multi.. bla bla og ned til lige før den klare tekst skal også væk.
Avatar billede bojo Nybegynder
07. oktober 2004 - 08:19 #4
for at jeg bedre forstår det kan du så ikke lavet det du gav her om til det du ønsker, så kan jeg se hvad der skal væk
Avatar billede morten_linder Praktikant
07. oktober 2004 - 08:21 #5
From morten@linder.dk  Sun Oct  3 03:16:38 2004
Return-Path: <morten@linder.dk>
Received: from www.linder.dk ([195.184.32.204])
        by data3.dk (8.12.11/8.12.11) with ESMTP id i931GbBJ015116
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
        for <morten@data3.dk>; Sun, 3 Oct 2004 03:16:37 +0200
Received: from morten ([212.130.178.210])
        by www.linder.dk (8.12.11/8.12.9) with SMTP id i92DABv5029178
        for <morten@data3.dk>; Sat, 2 Oct 2004 15:10:11 +0200
Message-ID: <00c101c4a881$72c72d80$2201a8c0@morten>
From: "Morten Linder" <morten@linder.dk>
To: <morten@data3.dk>
Subject: test
Date: Sat, 2 Oct 2004 15:12:15 +0200

test
Avatar billede morten_linder Praktikant
07. oktober 2004 - 08:21 #6
Sådan der :) Det skulle vist være svaret :)

Jeg går næsten udfra , at det er en funktion, der så skal returnere det ovenstående tilbage i mit array?
Avatar billede bojo Nybegynder
07. oktober 2004 - 08:25 #7
ja det er sådan noget jeg har i tankerne
Avatar billede bojo Nybegynder
07. oktober 2004 - 09:13 #8
hvis din mail er i $mail, skulle dette gøre det

<?
$ren = ren_mail( $mail );
echo $ren[0];
echo "<br>";
echo $ren[1];

function ren_mail( $m ) {
  preg_match("/(.+)MIME-Version\: 1\.0.+Content-Transfer-Encoding: quoted-printable(.+)------=_NextPart/s",  $m, $ren, PCRE_DOTALL );
    return( $ren );
}
?>
Avatar billede bojo Nybegynder
07. oktober 2004 - 09:17 #9
UPS

<?
$ren = ren_mail( $mail );
echo $ren[1];
echo "<br>";
echo $ren[2];

function ren_mail( $m ) {
  preg_match("/(.+)MIME-Version\: 1\.0.+Content-Transfer-Encoding: quoted-printable(.+)------=_NextPart/s",  $m, $ren);
    return( $ren );
}
?>
Avatar billede bojo Nybegynder
07. oktober 2004 - 09:21 #10
hmmm - næææ, der der "ged" i body, men det ses først ved "vis kilde", leger lidt videre
Avatar billede bojo Nybegynder
07. oktober 2004 - 09:53 #11
<?

$ren = ren_mail( $mail );
echo $ren[1];
echo "<br>";
echo $ren[3];

function ren_mail( $m ) {
  preg_match("/(.+)MIME-Version\: 1\.0(.+)Content-Transfer-Encoding: quoted-printable(.+)------=_NextPart/sU",  $m, $ren);
    return $ren;
}
?>
Avatar billede morten_linder Praktikant
07. oktober 2004 - 10:11 #12
Warning: preg_match() expects parameter 2 to be string, resource given in /home/mlp/test.php on line 14
Avatar billede bojo Nybegynder
07. oktober 2004 - 10:36 #13
Parameter 2 er den mail du sender med, hvad sender du?

prøv dette, som er det eks. du sendt



<?

$mail = <<<EOFMAIL
From morten@linder.dk  Sun Oct  3 03:16:38 2004
Return-Path: <morten@linder.dk>
Received: from www.linder.dk ([195.184.32.204])
        by data3.dk (8.12.11/8.12.11) with ESMTP id i931GbBJ015116
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
        for <morten@data3.dk>; Sun, 3 Oct 2004 03:16:37 +0200
Received: from morten ([212.130.178.210])
        by www.linder.dk (8.12.11/8.12.9) with SMTP id i92DABv5029178
        for <morten@data3.dk>; Sat, 2 Oct 2004 15:10:11 +0200
Message-ID: <00c101c4a881$72c72d80$2201a8c0@morten>
From: "Morten Linder" <morten@linder.dk>
To: <morten@data3.dk>
Subject: test
Date: Sat, 2 Oct 2004 15:12:15 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
        boundary="----=_NextPart_000_00BE_01C4A892.333F8930"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

This is a multi-part message in MIME format.

------=_NextPart_000_00BE_01C4A892.333F8930
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

test
------=_NextPart_000_00BE_01C4A892.333F8930
Content-Type: text/html;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2180" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>test</FONT></DIV></BODY></HTML>

------=_NextPart_000_00BE_01C4A892.333F8930--
EOFMAIL;

$ren = ren_mail( $mail );
echo $ren[1];
echo "<br>";
echo $ren[3];

function ren_mail( $m ) {
  preg_match("/(.+)MIME-Version\: 1\.0(.+)Content-Transfer-Encoding: quoted-printable(.+)------=_NextPart/sU",  $m, $ren);
    return $ren;
}
?>
Avatar billede morten_linder Praktikant
07. oktober 2004 - 10:47 #14
bare lav det som svar.... jeg har ikke kunne få det til at du, arbejder mig igennem body linie for linie.
Avatar billede bojo Nybegynder
07. oktober 2004 - 10:49 #15
nej da, ingen løsning = ingen point, men forstår det nu ikke da det virker her.
Avatar billede bojo Nybegynder
07. oktober 2004 - 11:13 #16
hvad med denne, hvor stdin læses ind i $mail - hvis det var det der er problemet


<?

$mail = readfile("php://stdin");

$ren = ren_mail( $mail );
echo $ren[1];
echo "<br>";
echo $ren[3];

function ren_mail( $m ) {
  preg_match("/(.+)MIME-Version\: 1\.0(.+)Content-Transfer-Encoding: quoted-printable(.+)------=_NextPart/sU",  $m, $ren);
    return $ren;
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester