mutt 헤더 캐시에서 이메일 통계를 생성하려면 어떻게해야합니까?


12

적절하게 구성되면 ( set header_cache=) mutt는 메일 헤더를 캐시 파일에 저장합니다. 메일 통계를 생성하는 데 사용할 수 있습니다. 파일 형식에 대해 아는 사람이 있습니까? 포함 된 정보를 추출 할 수있는 도구가 있습니까? (게다가 strings, grep, awk등)


코드는 다음과 같습니다. dev.mutt.org/hg/mutt/file/tip/hcache.c
mattdm

메일 서버 로그 파일에서 더 잘 응답하지 않는 어떤 종류의 통계를 생성하려고합니까?
Caleb

1
@Caleb 1 년 / 월 / 일당 min / avg / max 메일, 대부분의 되풀이 된 수신 / 발신자 등 매우 기본적인 통계를 염두에두고 있습니다. 모든 사람이 메일 서버 로그에 액세스 할 수있는 것은 아니므로 항상 옵션은 아닙니다.
artistoex

답변:


4

짧은 답변:

캐시가 포괄적이지 않을 가능성은 전적으로 가능합니다. 메일을 삭제하고 나중에 hcache가 해당 메일함에 대한 헤더 캐시를 다시 계산하면 통계에는 삭제 전의 메일이 포함되지 않습니다.

서버의 메일 로그에 액세스 할 수 없으면 procmail과 같은 필터 메커니즘에 액세스 할 수 있습니까? 이를 사용하여 분석을위한 대체 로그를 생성 할 수 있습니다.

그렇지 않으면받은 메일 로그를 생성 할 수있는 프로그램으로 사서함을 폴링 할 수 있습니까? offlineimap 필터 또는 해시 및 캐싱과 결합 된 fetchmail / retchmail과 같은 것.

더 긴 답변 :

캐시 파일은 DBM 스타일 데이터베이스입니다. mutt의 정확한 빌드 옵션에 따라 QDBM , tokyo cabinet , gdbm 또는 BDB ( Berkeley DB ) 중 하나 일 수 있습니다 . 모두 BDB의 API 변형을 구현합니다.

올바른 라이브러리 구현을 사용하지 않으면 DB를 안정적으로 읽을 수는 없습니다. ldd내 로컬 뮤트가 도쿄 캐비닛 구현을 사용한다고 알려줍니다.

$ ldd /usr/bin/mutt
…
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)
…

그런 다음 해당 라이브러리를 사용하여 캐시 파일 내에 저장된 BDB를 쿼리하기 위해 프로그램을 작성해야합니다. Perl, Ruby, Lua, Java 및 물론 C에 대한 바인딩이 있습니다.

헤더는 CRC에 의해 색인 된 DB에 값으로 저장되는 것으로 보입니다. 내가 알 수 있듯이 CRC는 사서함 경로에서 파생됩니다. 이것은 저장된 헤더가 해당 사서함의 모든 메일에 대한 헤더임을 나타냅니다 . 따라서 프로그램은 본질적으로 주어진 사서함의 모든 메일에 대한 모든 헤더를 포함하는 버퍼로 끝납니다. 현재 사서함에있는 모든 메일에서 헤더를 가져 오는 것보다 더 유용하다고 생각하지 않습니다 (그리고 위의 "짧은 대답"이 주어지면 더 신뢰할 수는 없습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.