"InboxNinja: Postmark와 협업한 실시간 이메일 전달 시스템" – that's 34 chara
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

인박스 혁신: Postmark와의 협업으로 탄생한 InboxNinja 🥷

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

운영팀, 소프트웨어 개발자, DevOps 엔지니어

  • 난이도: 중급~고급 (비동기 프로그래밍, API 통합, 실시간 워크플로우 구축)

핵심 요약

  • Postmark의 Inbound Webhook을 활용한 실시간 이메일 전달 시스템 구축
  • Quart(비동기 Flask 대체), Discord.py, Google Gemini을 사용한 실시간 요약 및 Discord 채널 자동 라우팅
  • 비동기 서버Discord 봇의 통합을 통한 파일 처리, 버튼 상호작용, 쓰레드 관리 기능 구현

섹션별 세부 요약

1. **서론: InboxNinja의 목적과 기능**

  • 이메일 워크플로우를 실시간 Discord 채팅으로 전환하여 팀 협업 효율성 향상
  • Postmark → Webhook → Discord 파이프라인을 통해 이메일 내용 요약 및 채널 전달
  • Careers, Support, Legal 등 특정 부서 이메일을 자동 분류 및 처리

2. **핵심 기능**

  • 실시간 이메일 전달: Postmark의 Inbound Webhook을 통한 즉시 처리
  • Gemini AI 기반 요약: 이메일 본문의 핵심 내용 자동 요약
  • Discord 채널 자동 라우팅: 이메일 주소 기반으로 채널 자동 할당
  • 파일 처리: Base64 인코딩된 첨부파일을 Discord File 객체로 변환
  • 버튼 상호작용: "Show Full Email", "Mark as Resolved" 등의 버튼 제공

3. **기술 스택**

  • Postmark API: 이메일 데이터 추출 및 전달
  • Quart: 비동기 웹 서버로 Webhook 처리
  • Discord.py: Discord 봇 구축 및 채팅 관리
  • Google Gemini: 이메일 요약 및 분석
  • Python Asyncio: 비동기 프로그래밍을 위한 핵심 라이브러리

4. **구현 과정**

  • 비동기 서버와 봇의 통합: asyncio.run() 활용 및 이벤트 루프 관리
  • 첨부파일 처리: Base64 문자열 디코딩 및 파일 메타데이터 보존
  • Discord.py 버튼 관리: 커뮤니티 예제를 기반으로 커스텀 뷰 구현

5. **도전 과제**

  • 비동기 충돌 문제: asyncio.run() 사용 시 발생한 이벤트 루프 간섭 해결
  • Discord.py 문서 부족: 커뮤니티 자원을 통한 버튼 기능 구현
  • 첨부파일 변환: Postmark의 Base64 데이터를 Discord File 객체로 재패키징

6. **결론 및 향후 계획**

  • 현재 기능: 실시간 이메일 처리, 요약, 채널 라우팅, 파일 처리, 버튼 상호작용
  • 향후 개선: 우선순위 감지 시스템 구축, Postmark Transactional Email을 통한 회신 처리

결론

  • Postmark + Discord.py + Quart + Gemini 기반의 실시간 이메일-채팅 연동 시스템 구축을 통해 운영 워크플로우 효율화
  • 비동기 처리 및 API 통합을 통해 운영팀의 협업 편의성 증대
  • 향후 우선순위 감지 기능 추가로 이메일 관리의 자동화 수준 향상