포워드 계정으로 전자 메일을 전달하는 .forward.postix가 있습니다. 따라서 전자 메일을 구문 분석하는 PHP 스크립트가 제공됩니다.PHP에서 전자 메일 첨부 파일 구문 분석
지금까지 온라인에서 본 모든 것을 기반으로 explode('From: ', $email);
접근 방식을 사용하여 데이터베이스에 필요한 모든 데이터를 분할했습니다.
첨부 파일을 입력하십시오! 동일한 접근법을 사용하여 jpg 첨부 파일을 꺼내기 위해이 작업을 수행합니다. 그러나 모든 이메일 클라이언트가 원시 소스를 동일한 방식으로 포맷하지는 않으며 일부 두통을 유발합니다.
$contentType1 = explode('Content-type: image/jpg;', $email); //start ContentType
$contentType2 = explode("--Boundary_", $contentType1[1]); //end ContentType
$jpg1 = explode("\n\n", $contentType2[0]); //double return starts base64 blob
$jpg2 = explode("\n\n", $jpg1[1]); //double return marks end of base64 blob
$image = base64_decode($jpg2[0]); //decode base64 blob into jpg raw
여기 내 문제입니다 : 모든 메일 클라이언트 - Gmail과 같은 예를 들어 - 'Content-type: image/jpg'
등의 첨부 파일을 나열합니다. GMail은 'Content-Type: IMAGE/JPEG'
에 넣고 때로는 'Content-Type: image/jpeg'
으로 보냅니다! 어느 내 폭발과 일치하지 않습니다 ...
내 질문 : 누군가가 base64 BLOB의 경계를 찾는 더 나은 방법을 알고 있습니까? 또는 'Content-Type:'
을 폭발시키는 대소 문자를 구분하지 않는 방법 일 수 있습니다. 그런 다음 image/jpg
또는 image-jpeg
과 비교해 볼 수 있습니다.
추가 참고 : Regex를 사용하여 폭발하지 말고 머리글 문과 일치시킬 것을 권장합니다. – h2ooooooo
PHP 내장 IMAP 기능을 사용해 보셨습니까? 나는 과거에 그걸 가지고 성공적으로 해결책을 구현했다. –