Files
chocoadmin/docs/plan/email-sending-report.md

6.3 KiB

Chocomae Email Sending Report

조사 기준:

  • 현재 chocoadmin 저장소에는 이메일 발송 구현이 없다.
  • 기존 서비스 원본은 /Users/jisangs/work/jinaju/git/web/mouse-typing 기준으로 확인했다.
  • 핵심 구현 파일:
    • src/web/server/mail/send_jinaju_mail.php
    • src/web/server/mail/mail_contents.php
    • src/web/server/mail/mail_setting.php

공통 발송 설정

  • 발송자 이름: 초코마에
  • 발송자 주소: support+chocomae@jinaju.com
  • BCC: support+chocomae.automail@jinaju.com
  • 기존 구현은 PHPMailer + SMTP를 사용한다.
  • 일부 배치 스크립트는 NCloud Mail API 템플릿 ID를 사용한다.
  • 기존 코드에는 SMTP/API 키가 하드코딩되어 있으므로, 신규 구현 시 반드시 환경변수 또는 배포 시크릿으로 분리해야 한다.

운영 플로우에서 호출되는 메일

# 메일 호출 위치 제목 주요 내용
1 마에스트로 체험 등록 완료 src/web/server/maestro/add_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 등록 및 활성화 완료 신청 아이디, 요금제, 2주 무료 체험 종료일, 계정 정보 변경 안내
2 관리자 등록 승인 완료 src/web/server/admin/register_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 등록 및 활성화 완료 계정 활성화 완료, 1년 사용, 업그레이드/만료/정보 변경 안내
3 연장 신청 입금 안내 src/web/server/maestro/request_extension_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 유효기간 연장을 위한 입금 안내 현재 요금제, 기존 유효기간, 새 유효기간, 입금 계좌, 금액, 송금자명 안내
4 연장 완료 src/web/server/admin/extension_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 유효기간 연장 완료 유효기간 +1년 연장 완료, 새 유효기간 안내
5 체험 계정 업그레이드 입금 안내 src/web/server/maestro/request_upgrade_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 업그레이드를 위한 입금 안내 현재 무료 체험 요금제, 신청 업그레이드 요금제, 전체 결제 금액, 입금 계좌 안내
6 일반 계정 업그레이드 입금 안내 src/web/server/maestro/request_upgrade_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정 업그레이드를 위한 입금 안내 현재 요금제, 업그레이드 요금제, 차액 결제 금액, 입금 계좌 안내
7 체험 계정 업그레이드 완료 src/web/server/admin/upgrade_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정의 요금제 업그레이드 완료 알림 무료 체험 요금제에서 유료 요금제로 업그레이드 완료, 유효기간 오늘부터 1년
8 일반 계정 업그레이드 완료 src/web/server/admin/upgrade_maestro.php [초코마에] {{maestro_name}} - 마에스트로 계정의 요금제 업그레이드 완료 알림 기존 요금제에서 상위 요금제로 변경 완료, 유효기간 오늘부터 1년
9 마에스트로 아이디 변경 알림 src/web/server/maestro/update_maestro_info.php [초코마에] {{update_maestro_name}} - 마에스트로 계정 아이디 정보 변경 알림 변경 전/후 아이디, 다음 로그인 시 변경된 아이디 사용 안내
10 마에스트로 이메일 변경 알림 src/web/server/maestro/update_maestro_info.php [초코마에] 마에스트로 계정 이메일 정보 변경 알림 변경 전/후 이메일, 이후 알림은 변경 후 이메일로 발송 안내

배치/만료 관련 메일

# 메일 호출 위치 제목 또는 템플릿 주요 내용
11 유효기간 7일 전 만료 안내 src/php-cli/batch/send_mail_to_7days_left_maestro.php [초코마에] {{maestro_name}} 마에스트로 계정 유효기간 - 7일 후 만료 안내 유효기간, 7일 후 휴면 전환, 연장/업그레이드 방법 안내
12 유효기간 종료 안내 src/php-cli/batch/send_mail_to_overdated_maestro.php [초코마에] {{maestro_name}} 마에스트로 계정 유효기간 종료 안내 휴면 전환, 학생 로그인 불가, 6개월 후 삭제 가능성, 재활성화 방법 안내
13 미입금 계정 삭제 예고 src/php-cli/batch/old/send_mail_to_unpaid_maestro.php, Python wrapper send_mail_to_unpaid_maestro.py NCloud templateSid 337; PHPMailer 템플릿 제목은 [초코마에] {{maestro_name}} - 미입금 계정 삭제 예고 안내 신청 후 일주일간 미입금, 오늘 중 입금 없으면 계정 등록 정보 삭제 예정
14 유효기간 30일 전 안내 src/php-cli/batch/old/send_mail_to_30days_left_maestro.php, Python wrapper send_mail_to_expire_maestro.py NCloud templateSid 333 코드에는 파라미터만 확인됨: maestro_name, available_date. 실제 제목/본문은 NCloud 콘솔 템플릿에 저장된 것으로 보인다.

템플릿/테스트 흔적만 확인된 메일

메일 위치 상태
등록 입금 안내 sendMailRegisterBankInfo, mail_contents.phpregistrationBankInfo 제목/본문은 있으나 주요 등록 플로우에서는 호출되지 않고 관리자 테스트 화면에서 호출된다.
클로즈베타 등록 입금 안내 mail_contents.phpclosedBetaRegistrationBankInfo 템플릿만 확인됨. 현재 호출부는 확인되지 않았다.
클로즈베타 등록 완료 mail_contents.phpclosedBetaRegistrationDone 템플릿만 확인됨. 현재 호출부는 확인되지 않았다.
클로즈베타 유료 결제 감사/기간 +1개월 sendMailToClosedBetaPaidMestroEmail, src/php-cli/batch/old/send_mail_to_closed_beta_paid_maestro.php old 배치에서 호출된다.

구현 시 참고

  • 연장/업그레이드 승인 메일은 기존 PHP 코드에서 DB 변경 후 발송한다.
  • 신규 구현에서는 DB 트랜잭션 커밋 이후 메일 발송을 분리하는 것이 안전하다.
  • 메일 발송 실패가 신청 승인/상태 변경을 롤백해야 하는지는 별도 정책 결정이 필요하다.
  • 계좌 정보, 발송자/BCC, SMTP/API 인증 정보는 코드에 하드코딩하지 말고 환경변수로 관리해야 한다.