Project > Authentification > Sign In / Providers에서 가입/이메일확인 등 설정가능
상황 : Supabase를 연동한 Flutter앱에서 회원가입시 이메일인증 불가
1번오류) "aaa@naver.com" is invalid
2번오류) email rate limit exceeded
1. Email address "aaa@naver.com" is invalid 에러 코드: email_address_invalid (HTTP 400) 원인: Supabase Auth(GoTrue)의 이메일 deliverability 검증 실패입니다. 클라이언트 Validators.email을 통과한 뒤, 서버에서 한 번 더 검사합니다. 공식 문서 설명은 "Example and test domains are not supported" 정도로 짧지만, 실제로는 더 엄격합니다. 도메인 DNS(MX/A) 조회 테스트/오타 도메인 차단 (email.com 등) 짧거나 가짜처럼 보이는 로컬 파트 차단 (예: short@gmail.com → 거절 사례 있음) aaa@naver.com은 naver.com 도메인은 정상이지만, 로컬 파트 aaa(3글자)가 테스트용/비현실적 주소로 판단됐을 가능성이 큽니다. 같은 세션에서 hong1@naver.com은 200 + 확인 메일 발송까지 성공했으므로, naver.com 자체가 막힌 것은 아닙니다. aaa@naver.com → 서버 검증 실패 (invalid) hong1@naver.com → 서버 검증 통과 (OK)
2. email rate limit exceeded 에러 코드: over_email_send_rate_limit (HTTP 429) 원인: Supabase 기본 내장 SMTP의 발송 한도 초과입니다. 기본 SMTP: 프로젝트당 시간당 2통 (확인 메일·비밀번호 재설정 등 합산) hong1@naver.com으로 확인 메일 1통이 이미 나감 (mail.send 로그 확인) 이후 재시도(같은/다른 이메일)가 한도를 넘어 429 발생 회원가입 API를 여러 번 누르거나, aaa 실패 후 hong1 시도 + 재시도를 하면 금방 한도에 도달합니다.
개발 환경 (권장) Dashboard → Authentication → Providers → Email
옵션
효과
Confirm email OFF
확인 메일 없이 즉시 세션 생성 (개발용)
Custom SMTP (Resend, SendGrid 등)
2통/시간 제한 해제
운영 전 Custom SMTP 설정 필수 (기본 SMTP는 프로덕션 부적합)