피드로 돌아가기
How to Analyze SMTP Logs and Extract Email Traffic (PHP Script)
Dev.toDev.to
Backend

PHP 스크립트를 통해 SMTP 로그에서 특정 이메일의 IP 기반 필터링으로 혼재된 트래픽 데이터 정렬

How to Analyze SMTP Logs and Extract Email Traffic (PHP Script)

Cahit Bodur2026년 3월 28일2beginner

Context

SMTP 로그는 구조화되지 않은 형태로 다양한 이메일이 혼합되어 저장되며, 같은 IP의 데이터가 여러 줄에 분산되어 있다. 클라이언트가 특정 이메일의 로그만 요청할 때 수천 개의 혼합 레코드를 포함한 대용량 파일을 처리해야 하는 문제가 발생한다.

Technical Solution

  • 대상 이메일 주소를 포함한 로그 라인 검색: stripos() 함수로 목표 이메일 문자열 위치 파악
  • 검출된 라인에서 IP 주소 추출: 탭 구분자로 분리된 네 번째 필드(index 4)에서 IP 값 획득
  • 동일 IP 기반 범위 수집: 검출 라인 기준으로 앞뒤 100줄씩(range 변수) 검색하며 같은 IP 데이터만 필터링
  • 제외 IP 패턴 설정: excludeIp 변수(185.86.*.14)를 통해 특정 IP 대역 제거
  • 정렬된 데이터를 별도 파일에 작성: 재구성된 SMTP 흐름을 output.log 파일로 저장

Key Takeaway

SMTP 로그 분석 시 단순 텍스트 필터링이 아닌 IP 기반 상관관계 추적을 통해 비구조화된 데이터에서 의미 있는 트래픽 흐름을 재구성할 수 있다.


메일 서버를 운영하는 팀에서 특정 클라이언트나 도메인의 이메일 전송 흐름을 분석할 때, 대상 주소 검색 후 동일 IP로 근처 줄 범위를 묶는 방식을 적용하면 수동 로그 분석 시간을 단축하고 클라이언트별 격리된 로그 파일을 신속하게 생성할 수 있다.

원문 읽기