소개
이메일 관리에서 Gmail은 강력한 필터 기능을 제공하지만, 수백 개의 규칙을 수동으로 설정하고 유지하는 것은 비효율적입니다. 특히 여러 계정을 운영하거나 팀 내에서 일관된 메일 처리 체계를 유지해야 할 경우 문제가 됩니다. 이를 해결하기 위해 개발된 오픈소스 도구는 설정 파일 기반으로 Gmail 필터를 자동 동기화하는 솔루션을 제공합니다.
기술 구조
이 도구는 Go 언어로 작성되어 빠른 실행 속도와 낮은 리소스 사용량을 자랑합니다. 내부적으로는 Google의 공식 Gmail API v1을 활용해 인증 및 필터 조작을 수행합니다. 사용자는 JSON 형식의 인증 키를 등록하고, OAuth 2.0을 통해 계정 접근 권한을 부여하면, 명령줄에서 필터의 생성, 수정, 삭제, 내보내기 작업을 모두 자동화할 수 있습니다.
주요 기능 명령 예시
$ gmailfilters --creds-file ~/credentials.json --token-file ~/token.json
$ gmailfilters --export --output filters.toml
$ gmailfilters apply --config rules.hcl
활용 사례
- 다중 계정 통합 관리: 프리랜서나 시스템 관리자가 여러 Gmail 계정에 동일한 필터 세트를 배포할 수 있음.
- 버전 컨트롤 연동: 필터 정의 파일을 Git 저장소에 저장해 변경 이력을 추적하고 롤백 가능.
- CI/CD 파이프라인 통합: GitHub Actions 등을 통해 주기적으로 필터를 재적용하여 환경 일관성 유지.
- 재해 복구: 실수로 필터가 삭제되더라도 백업된 설정 파일로 즉시 복원 가능.
설정 파일 예제 (TOML 형식)
[[rule]]
match = "from:alert@monitoring-service.com"
action = "apply-label"
label_name = "시스템/경고"
should_archive = true
[[rule]]
match = "subject:'Weekly Report' AND from:team-leader@company.com"
action = "mark-read"
assign_label = "보고서/주간"
시작 방법
- Google Cloud Console에서 새 프로젝트 생성.
- Gmail API 활성화 후, "OAuth 클라이언트 ID" 생성 (응용프로그램 유형: 데스크톱).
- 다운로드한
credentials.json을 안전한 위치에 저장. - 명령어 실행 시
--creds-file옵션으로 경로 지정.
빌드 및 설치 (Go 필요)
go install github.com/jessfraz/gmailfilters@latest
핵심 장점
- 스크립트 기반 자동화: 반복적인 설정 작업을 CLI 스크립트로 대체.
- 형식 유연성: TOML, YAML, HCL 등 다양한 구성 파일 포맷 지원.
- 디버그 모드 제공:
--debug플래그로 요청/응답 로그 확인 가능. - 오픈소스 생태계: GitHub에서 소스 코드 공개, 커뮤니티 기반 개선 지속 중.