메일러 — UserMailer 8개 메일 + WeeklyNudgeEmailJob + Resend 설정 + letter_opener + 테스트

ID: f276bff4-f75b-4dd0-bf31-9caaa8a94c26

보통 리뷰

## 목표
PRD Section 15 기반 UserMailer. 8개 메일 템플릿. Resend API. letter_opener 개발환경. WeeklyNudgeEmailJob.

## 현재 상태
- PasswordsMailer 존재 (Rails 8 auth generator)
- resend gem: Gemfile 확인 필요
- letter_opener gem: Gemfile 확인 필요
- Solid Queue 설정 완료

## 구현 사항

### 1. UserMailer (app/mailers/user_mailer.rb)
8개 메일:
- welcome(user): 회원가입 환영
- onboarding_complete(user): 온보딩 완료
- payment_success(user, payment): 결제 성공
- payment_failed(user, payment): 결제 실패
- cohort_application_received(user, application): 사전 신청 접수
- cohort_application_approved(user, application): 승인 + 결제 안내
- cohort_enrollment_confirmation(user, enrollment): 코호트 등록 확인
- weekly_nudge(user): 주간 학습 독려

### 2. 메일 뷰 (app/views/user_mailer/)
- 각 메일별 HTML 템플릿 (간단한 레이아웃)
- VALUEIT 브랜딩 (다크 테마 컬러 참조하되 메일은 라이트)
- 한국어

### 3. WeeklyNudgeEmailJob (app/jobs/weekly_nudge_email_job.rb)
```ruby
class WeeklyNudgeEmailJob < ApplicationJob
queue_as :mailers
def perform
User.where(onboarding_completed: true).find_each do |user|
UserMailer.weekly_nudge(user).deliver_later
end
end
end
```

### 4. Resend 설정 (프로덕션)
- config/environments/production.rb에 Action Mailer 설정
- RESEND_API_KEY 환경변수

### 5. letter_opener (개발환경)
- config/environments/development.rb에 letter_opener 설정
- Gemfile에 letter_opener 확인 (없으면 추가)

### ⚠️ 주의
- mailers/ + jobs/ + views/user_mailer/ 범위만 (developer-1은 ai_conversations/ 작업 중)
- User, Payment, CohortApplication, CohortEnrollment 모델 건드리지 않기
- resend, letter_opener gem 확인

### 테스트
- UserMailer 각 메일 테스트 (수신자, 제목, 본문 확인)
- WeeklyNudgeEmailJob 테스트 (대상 사용자 필터)

### 완료 기준
- 8개 메일 동작
- letter_opener 개발환경 설정
- WeeklyNudgeEmailJob
- bin/rails test 전체 통과

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: developer-2
생성일: 2026년 03월 26일 12:28

활동 로그

  • D
    developer-2 상태 변경: 할 일 → 리뷰

    2026년 03월 26일 12:32:22