2012-07-24 3 views
3

PHP imap functions을 통해 전자 메일을 구문 분석하려고 할 때 문제가 있습니다. 본문 텍스트를 추출하고 HTML 링크 (예 : mailto : xxxx) 또는 인코딩 문제가없는 텍스트를 추출합니다. 나는 (거의, 나는 추측한다) 모든 것을 시도했다고 생각한다. 하지만 내가 원하는 최종 결과에 접근하고있는 유일한 코드는 다음과 같습니다imap 전자 메일 인코딩 인코딩

$bodyText = imap_fetchbody($inbox,$email_number,1.2); 

if(!strlen($bodyText)>0) 
{ 
    $bodyText = imap_fetchbody($inbox,$email_number,1); 
} 

var_dump($bodyText); 

요점은 내가 최종 인코딩 문제를 얻고이와 (내가이 문제라고 생각)이다. 그래서 위해서 var_dump 출력 뭔가 같다 : 나는 나쁜 대신 @=40mailto:[email protected] 블록

감사합니다 당신이 나타나는 것을 의미

> From: SomeOne <someone=40domain.com> 
> To: Someone Else <someoneelse=40domain.com> 
> =Date: lunes 23 de julio de 2012 13:04:43 
> Subject: =46wd: =46W: URGE=21=21=21=21 Ley de Reforma del Congreso de 20=11 
> =20 
> Some text here, blah, blah, blah 
> =20 
> ---------- =46orwarded message ---------- 
> From: Whatever <whatever=40domain.com (mailto:whatever=40domain.com)> 
> Date: 23 de julio de 2012 12:53 
> Subject: =46wd: =46W: URGE=21=21=21=21 Ley de Reforma del Congreso de 20=11 
> To: Someone <someone=40domain.com (mailto:someone=40domain=.com)> 
> =20 
> =20 
> Some stuff=21=21 
> =20 
> ---------- =46orwarded message ---------- 
> =46rom: samuel l jackson <sanvuco=40domain.com (mailto:sanvuco=40domain.com)> 
> Date: 2012/7/23 
> Subject: =46W: URGE=21=21=21=21 Ley de Reforma del Congreso de 2011 
> To: =22...Scary Monster=C2=B7=C2=B7=C2=B7 =C3=B2=5F=5F=C3=B3=22 <eowyn2= 
6=40domain.com (mailto:eowyn26=40domain.com 

답변

2

실행

quoted_printable_decode($bodyText); 
을 통해 몸 문자열

그리고 찾고있는 인쇄 할 수 있고 인코딩되지 않은 문자열을 얻을 수 있습니다. 그런 다음 mailtos를 제거하고 원하는 다른 구문 분석을 수행하기 위해 정규 표현식을 계속 사용할 수 있습니다. 이러한 작업을위한 적절한 기능은 다음과 같습니다

preg_replace(); 

http://www.php.net/manual/en/function.preg-replace.php

+0

지금 노력하고 있습니다. 도와 줘서 고마워.) – blacksoul

관련 문제