Skip to content

Indico 메일 발송 실패 #112

Description

@jhgoh

인디코에서 아이디 생성, 이벤트 registration등 각종 상황에서 유저에게 메일 발송이 되지 않아왔음.
세팅 초기부터 메일서버 기능 생성에 어려움이 있었고, 정상동작이 되지 않았었음.

NNN학회 운영에서 메일 발송 기능이 꼭 필요하여 요청이 있었음.
claude의 도움으로 해결함. 아래는 claude가 작성한 내용임.

증상

  • Indico에서 가입 확인 메일, 공지 메일 등이 발송되지 않음
  • Celery 로그에서 SMTPAuthenticationError: (535, b'5.5.1 authentication failed') 반복 발생
  • 지수 백오프로 재시도하다 최종 실패 (MaxRetriesExceededError), 실패한 메일은 /opt/indico/tmp/failed-email-*에 저장됨

원인

  • Indico는 smtp.daum.net:465을 SMTP 릴레이로 사용 중 (계정: u44256, From: admin@neutrino.or.kr)
  • 해당 다음(Daum) 계정이 휴면계정으로 전환되어 SMTP AUTH가 거부됨
    • 이 계정은 발송 전용으로만 쓰여 사람이 웹 로그인을 하지 않았음 → 다음의 비활성 계정 자동 휴면 정책에 걸림
  • 휴면 해제 과정에서 SMTP용 비밀번호가 재발급되었으나, indico.confSMTP_PASSWORD는 기존 값 그대로 남아있었음

진단 과정

  1. dig -x <hep IP> → PTR 정상 (hep.khu.ac.kr), 아웃바운드 25/587 포트 정상 → 네트워크/방화벽 문제 아님
  2. Celery 로그 상세 확인 → SMTPAuthenticationError (535, 5.5.1) 확정, SPF/DKIM/도메인 정렬 문제 아님
  3. openssl s_client로 hep에서 직접 AUTH LOGIN 테스트 → 기존 비밀번호로 535 재현
  4. 다음 웹 로그인 확인 → 휴면계정 전환 확인, 이전 발송 메일 존재 확인
  5. 새 앱 비밀번호로 hep에서 재테스트 → 235 Authentication succeeded 확인
  6. indico.confSMTP_PASSWORD를 새 비밀번호로 교체 후 web/celery 파드 재시작
  7. Indico 실제 registration 테스트 → 메일 수신 확인 완료

조치

  • indico.conf: SMTP_PASSWORD 값을 새 앱 비밀번호로 교체
  • kubectl rollout restart deployment indico-web -n indico
  • kubectl rollout restart deployment indico-celery -n indico

Metadata

Metadata

Assignees

No one assigned

    Labels

    incidentSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions