2013-03-26 1 views
0

전자 메일 헤더에서 데이터를 검색하는 매우 신뢰할 수있는 방법이 필요합니다. 예 : https://github.com/plancake/official-library-php-email-parser과 같은 전자 메일 구문 분석기를 사용해야합니까, 아니면 해당 데이터를 가져 오기에 충분한 PHP imap 함수입니까? 모범 사례는 무엇입니까? 경험이 있습니까? 많은 전자 메일 클라이언트로 구성된 전자 메일 헤더의 서식 지정에는 많은 차이가 있다고 생각할 수 있습니다. 그래서 저는 신뢰할 수있는 솔루션을 원합니다.이메일 파서 또는 php imap 함수?

답변

1

전자 메일을 날짜별로 처리해야하며 실제로 다른 것을 필요로하지 않는 프로젝트에 내장 IMAP 기능을 사용했습니다. 아래 코드를 사용하여 유용하다고 판단 할 수 있습니다.

<?php 

/* connect to gmail */ 
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; 
$username = '[email protected]'; 
$password = 'pass123'; 

/* try to connect */ 
$inbox = imap_open($hostname, $username, $password, OP_READONLY,1) or die('Cannot connect to Gmail: ' . print_r(imap_last_error())); 
$emails = imap_search($inbox, 'ALL'); 

/* if emails are returned, cycle through each... */ 
if ($emails) { 

    foreach ($emails as $email_number) { 

     echo imap_fetchbody($inbox, $email_number, 0); 
     echo imap_fetchbody($inbox, $email_number, 1); 
     echo imap_fetchbody($inbox, $email_number, 2); 

    } 

} 

imap_close($inbox); 
?> 

까다로운 부분은 imap_fetchbody($inbox, $email_number, 0)입니다. 이 부분은 헤더를 반환합니다. 일단 당신이 그들을 얻으면, 당신은 당신이 원하는대로 그것을 파싱하거나 사용할 수 있습니다.

희망이 있습니다.

+0

감사합니다. 사실 내 질문에 대한 구문 분석, 그래서 머리글을 검색했다. 별도의 구문 분석기 또는 예를 들어 imap_header()를 사용하여이 작업을 수행하는 것이 더 안전합니까? 그러면 해당 객체의 값을 가져옵니다. –

+0

오 죄송합니다. IMAP 서버 자체에서 데이터를 가져 왔으므로 그렇습니다. 나는 메일 헤더를받는 것이 가장 믿을만한 방법이라고 생각한다. – Tim