Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] E-mail broncode headers strippen

Pagina: 1
Acties:

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Hi all,

Ik probeer met een php-script e-mail headers uit een e-mail broncode te lezen en in een array te plaatsen. Helaas is regular expressions niet m'n sterkste kant, en ik kom er echt niet uit. Hopende op jullie hulp!

M'n email broncode staat in var $content en start ongeveer zo:

code:
1
2
3
4
5
6
7
8
9
10
X-Original-To: email@adres.nl
Delivered-To: email@adres.nl
Received: from blu0-omd-s27.blu0.hotmail.com (blu0-omd-s27.blu0.hotmail.com [65.**.111.102])
    by localhost (Postfix) with ESMTP id 38E9D40E62
    for <email@adres.nl>; Sat, 12 Apr 2014 10:39:43 +0200 (CEST)
Received: from BLU0-SMTP199 ([65.**.111.72]) by blu0-omd-s27.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675);
     Sat, 12 Apr 2014 01:39:44 -0700
X-TMN: [Opdzb0xsVXseFT8ee5sn/jHtR2rXFW4iS]
X-Originating-Email: [email@adres.nl]
Message-ID: <BLU0-SMTP199B431E513320634709C0F5AC570@phx.gbl>


Ik heb een preg_match_all() gevonden om alle e-mail adressen uit te lezen en in een array te zetten:

code:
1
2
3
4
5
$pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i'; //regex for pattern of e-mail address
            
preg_match_all($pattern, $content, $matches);
                        
var_export($matches[0]);


Maar eigenlijk wil ik in een array de mail headers met de bijbehorende values plaatsen. Dat je iets krijgt als:

code:
1
2
3
4
array (
'header_name1' => 'value1'
'header_name2' => 'value2'
)


Google brengt me alleen bij voorbeelden die net iets anders doen, of tutorials zonder begrijpelijk taal. Regulat expressies vind ik echt super moeilijk om te begrijpen, maar wellicht kunnen jullie mij op weg helpen :-)

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Je regex matched sowieso niet alle mogelijke e-mail adressen, slechts de meest gebruikte formaten.

Waarom gebruik je voor deze taken geen bestaande libraries? Daar zullen er vast genoeg voor zijn en die zullen het vast beter kunnen dan wat je zelf in 10 minuutjes in elkaar kunt draaien. Denk bijvoorbeeld ook eens aan karaktersets, anders dan 7-bit ascii...

[ Voor 10% gewijzigd door Joolee op 13-04-2014 15:10 ]


  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Joolee schreef op zondag 13 april 2014 @ 15:09:
Je regex matched sowieso niet alle mogelijke e-mail adressen, slechts de meest gebruikte formaten.

Waarom gebruik je voor deze taken geen bestaande libraries? Daar zullen er vast genoeg voor zijn en die zullen het vast beter kunnen dan wat je zelf in 10 minuutjes in elkaar kunt draaien. Denk bijvoorbeeld ook eens aan karaktersets, anders dan 7-bit ascii...
Klinkt goed. Waar kan ik die vinden?