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

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions