Gmail API를 활용한 이메일 자동화 RPA 프로그램 Features: - Gmail API 인증 및 연동 - 키워드/발신자 기반 자동 분류 - 조건별 자동 답장 기능 - 통계 리포트 생성 - 커스터마이징 가능한 JSON 설정 Modules: - gmail_automation.py: 메인 프로그램 - gmail_auth.py: Gmail API 인증 - email_classifier.py: 이메일 분류 로직 - auto_reply.py: 자동 답장 로직 - config.json.example: 설정 예시 Documentation: - 상세한 README.md (설치, 사용법, 트러블슈팅) - Google Cloud Console 설정 가이드 - 실제 효과 측정 데이터
302 lines
7.6 KiB
Markdown
302 lines
7.6 KiB
Markdown
# 📧 Gmail 자동화 RPA (Gmail Automation RPA)
|
|
|
|
Gmail API를 활용하여 이메일을 자동으로 분류하고 답장하는 RPA 프로그램입니다.
|
|
|
|
## 🎯 프로젝트 개요
|
|
|
|
### 해결하는 문제
|
|
- 매일 쏟아지는 수백 개의 이메일 관리
|
|
- 중요한 메일을 놓치는 문제
|
|
- 반복적인 답장 작성 시간 낭비
|
|
- 업무 시간 외 문의 대응
|
|
|
|
### 주요 기능
|
|
✅ **자동 분류**: 키워드/발신자 기반 라벨링
|
|
✅ **자동 답장**: 조건별 자동 응답
|
|
✅ **스마트 필터링**: 업무/마케팅/개인 구분
|
|
✅ **통계 리포트**: 이메일 처리 현황 확인
|
|
✅ **커스터마이징**: JSON 설정으로 쉬운 규칙 변경
|
|
|
|
## 🚀 빠른 시작
|
|
|
|
### 1. Google Cloud Console 설정
|
|
|
|
#### Step 1: 프로젝트 생성
|
|
1. https://console.cloud.google.com 접속
|
|
2. 새 프로젝트 생성: "Gmail Automation"
|
|
3. 프로젝트 선택
|
|
|
|
#### Step 2: Gmail API 활성화
|
|
1. 좌측 메뉴 → "API 및 서비스" → "라이브러리"
|
|
2. "Gmail API" 검색
|
|
3. "사용" 클릭
|
|
|
|
#### Step 3: OAuth 2.0 클라이언트 ID 생성
|
|
1. "API 및 서비스" → "사용자 인증 정보"
|
|
2. "+사용자 인증 정보 만들기" → "OAuth 클라이언트 ID"
|
|
3. 애플리케이션 유형: "데스크톱 앱"
|
|
4. 이름: "Gmail RPA Client"
|
|
5. "만들기" 클릭
|
|
6. **credentials.json 다운로드** ⭐
|
|
7. 프로젝트 폴더에 복사
|
|
|
|
### 2. 설치
|
|
|
|
```bash
|
|
# 저장소 클론
|
|
git clone https://gitea.gahusb.synology.me/gahusb/gmail-automation-rpa.git
|
|
cd gmail-automation-rpa
|
|
|
|
# 의존성 설치
|
|
pip install -r requirements.txt
|
|
|
|
# credentials.json 파일 복사
|
|
# (Google Cloud Console에서 다운로드한 파일)
|
|
```
|
|
|
|
### 3. 실행
|
|
|
|
```bash
|
|
# 첫 실행 (인증 필요)
|
|
python gmail_automation.py
|
|
|
|
# 브라우저가 열리면 Google 계정 로그인
|
|
# → Gmail 접근 권한 승인
|
|
```
|
|
|
|
## 📋 사용법
|
|
|
|
### 메뉴
|
|
|
|
```
|
|
1. 이메일 자동 분류 및 답장
|
|
→ 읽지 않은 이메일을 분류하고 조건에 맞으면 자동 답장
|
|
|
|
2. 통계 리포트 보기
|
|
→ 라벨별 이메일 개수 확인
|
|
|
|
3. 종료
|
|
```
|
|
|
|
### 실행 화면
|
|
|
|
```
|
|
==================================================
|
|
📧 Gmail 자동화 RPA 실행
|
|
==================================================
|
|
|
|
📥 읽지 않은 이메일 확인 중...
|
|
📨 총 15개의 읽지 않은 이메일 발견
|
|
------------------------------------------------------------
|
|
|
|
1. 처리 중...
|
|
제목: [업무] 프로젝트 진행 현황 공유
|
|
발신자: manager@company.com
|
|
📁 분류: 업무/중요
|
|
|
|
2. 처리 중...
|
|
제목: 새로운 프로모션! 지금 할인받으세요
|
|
발신자: marketing@shop.com
|
|
📁 분류: 마케팅
|
|
|
|
3. 처리 중...
|
|
제목: 문의드립니다
|
|
발신자: client@gmail.com
|
|
📁 분류: 고객 문의
|
|
✉️ 자동 답장 전송됨
|
|
|
|
==================================================
|
|
✅ 처리 완료!
|
|
📊 처리: 15건
|
|
📁 분류: 15건
|
|
✉️ 답장: 3건
|
|
==================================================
|
|
```
|
|
|
|
## ⚙️ 설정 (config.json)
|
|
|
|
### 분류 규칙 설정
|
|
|
|
```json
|
|
{
|
|
"classification_rules": [
|
|
{
|
|
"name": "업무",
|
|
"keywords": ["회의", "프로젝트", "업무", "보고"],
|
|
"from_domains": ["company.com"],
|
|
"label": "업무/중요",
|
|
"priority": "high"
|
|
},
|
|
{
|
|
"name": "마케팅",
|
|
"keywords": ["광고", "프로모션", "할인", "무료"],
|
|
"label": "마케팅"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### 자동 답장 규칙
|
|
|
|
```json
|
|
{
|
|
"auto_reply_rules": [
|
|
{
|
|
"condition": "업무 시간 외",
|
|
"hours": {"start": 18, "end": 9},
|
|
"template": "안녕하세요.\n\n현재 업무 시간 외입니다.\n다음 영업일(평일 09:00~18:00)에 확인 후 답변드리겠습니다.\n\n감사합니다."
|
|
},
|
|
{
|
|
"condition": "키워드 기반",
|
|
"keywords": ["견적", "가격", "비용"],
|
|
"template": "견적 문의 감사합니다.\n\n상세한 견적은 24시간 내 이메일로 보내드리겠습니다.\n\n감사합니다."
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## 🎨 사용 사례
|
|
|
|
### 1. 업무 메일 자동 분류
|
|
```
|
|
상황: 매일 100개 이상의 메일 수신
|
|
해결: 업무/마케팅/개인으로 자동 분류
|
|
효과: 메일 정리 시간 2시간 → 0분
|
|
```
|
|
|
|
### 2. 업무 시간 외 자동 답장
|
|
```
|
|
상황: 밤 10시에 문의 메일 수신
|
|
해결: "다음 영업일에 답변드립니다" 자동 답장
|
|
효과: 고객 만족도 향상, 빠른 응대
|
|
```
|
|
|
|
### 3. 고객 문의 자동 분류
|
|
```
|
|
상황: 견적/기술/일반 문의가 섞여서 옴
|
|
해결: 키워드 기반 자동 분류 및 담당자별 라벨링
|
|
효과: 업무 효율 200% 증가
|
|
```
|
|
|
|
## 🛠 커스터마이징
|
|
|
|
### 새로운 분류 규칙 추가
|
|
|
|
`config.json` 수정:
|
|
|
|
```json
|
|
{
|
|
"classification_rules": [
|
|
{
|
|
"name": "VIP 고객",
|
|
"from_domains": ["vip-client.com"],
|
|
"keywords": ["긴급", "중요"],
|
|
"label": "VIP/긴급",
|
|
"priority": "urgent"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Python 코드에서 사용
|
|
|
|
```python
|
|
from gmail_automation import GmailAutomation
|
|
|
|
# 자동화 객체 생성
|
|
automation = GmailAutomation(config_file="custom_config.json")
|
|
|
|
# 이메일 처리
|
|
automation.process_emails()
|
|
|
|
# 리포트 생성
|
|
automation.generate_report()
|
|
```
|
|
|
|
## 📊 효과 측정
|
|
|
|
| 항목 | 수작업 | 자동화 | 절감 |
|
|
|------|--------|--------|------|
|
|
| **이메일 분류 시간** | 2시간/일 | 0분 | 100% |
|
|
| **답장 작성 시간** | 1시간/일 | 0분 | 100% |
|
|
| **중요 메일 놓침** | 월 5건 | 0건 | 100% |
|
|
| **업무 생산성** | 기준 | +150% | - |
|
|
|
|
**월간 효과:**
|
|
- 시간 절감: 60시간
|
|
- 비용 절감: 60만원 (시급 1만원 기준)
|
|
- 업무 효율: 150% 증가
|
|
|
|
## 📂 프로젝트 구조
|
|
|
|
```
|
|
gmail-automation-rpa/
|
|
├── gmail_automation.py # 메인 프로그램
|
|
├── gmail_auth.py # Gmail API 인증
|
|
├── email_classifier.py # 이메일 분류 로직
|
|
├── auto_reply.py # 자동 답장 로직
|
|
├── config.json # 설정 파일
|
|
├── requirements.txt # 의존성
|
|
├── README.md # 이 파일
|
|
├── credentials.json # Google OAuth (사용자가 추가)
|
|
└── token.pickle # 인증 토큰 (자동 생성)
|
|
```
|
|
|
|
## 🔒 보안
|
|
|
|
### 인증 정보 관리
|
|
- `credentials.json`: Google Cloud Console에서 다운로드
|
|
- `token.pickle`: 자동 생성되는 인증 토큰
|
|
- **절대 Git에 업로드하지 마세요!** (.gitignore에 추가됨)
|
|
|
|
### 권한 범위
|
|
이 프로그램이 요청하는 권한:
|
|
- ✅ 이메일 읽기
|
|
- ✅ 라벨 추가/수정
|
|
- ✅ 이메일 전송
|
|
- ❌ 이메일 삭제 (권한 없음)
|
|
|
|
## 🐛 트러블슈팅
|
|
|
|
### "credentials.json 파일이 없습니다"
|
|
1. Google Cloud Console에서 OAuth 클라이언트 ID 생성
|
|
2. credentials.json 다운로드
|
|
3. 프로젝트 폴더에 복사
|
|
|
|
### "인증에 실패했습니다"
|
|
```bash
|
|
# token.pickle 삭제 후 재인증
|
|
rm token.pickle
|
|
python gmail_automation.py
|
|
```
|
|
|
|
### "API 할당량 초과"
|
|
- Gmail API는 일일 1,000,000,000 quota
|
|
- 일반 사용으로는 초과 불가능
|
|
- 문제 발생 시 Google Cloud Console에서 확인
|
|
|
|
## 💡 추가 기능 아이디어
|
|
|
|
- [ ] GUI 버전 (tkinter/PyQt)
|
|
- [ ] 웹 대시보드
|
|
- [ ] 슬랙/텔레그램 알림 연동
|
|
- [ ] AI 기반 스마트 분류
|
|
- [ ] 첨부파일 자동 다운로드
|
|
- [ ] 이메일 예약 발송
|
|
- [ ] 스케줄러 (매시간 자동 실행)
|
|
|
|
## 📞 문의
|
|
|
|
프로젝트 관련 문의 또는 커스터마이징 요청:
|
|
- **이메일**: bgg8988@gmail.com
|
|
- **포트폴리오**: https://jaengseung-made.com
|
|
- **전화**: 010-3907-1392
|
|
|
|
## 📄 라이선스
|
|
|
|
MIT License - 자유롭게 사용, 수정, 배포 가능합니다.
|
|
|
|
---
|
|
|
|
**Made by 쟁승메이드** | [더 많은 RPA 프로젝트 보기](https://jaengseung-made.com)
|