!The docs are decisive. Let me confirm the exact failure shape.
TAS returns {"ERROR_CODE":"41","ERROR_MSG":"Wrong AuthKey OR User id"} on auth failure — no MEM_CNT, no WRONG_DATA. My TasonClient::parse() then does:
WRONG_DATA absent → $wrong = [] → ok() is true
MEM_CNT absent → falls back to count($sentRows) - 0 = 1
→ logged as S
So an authentication error is recorded as success. That matches your symptom exactly: S in mail_log, nothing delivered. My "lenient fallback" silently converts every error envelope into a success.
Three separate defects, plus one thing that is working as designed:
S 인데 안 옴 버그 — 오류 응답을 성공으로 읽음
"잠시 후에 다시 시도" 버그 — 발송 성공 여부와 무관하게 mb_verify_sent_at을 찍음 (실제로 279초 경과, 5분 대기 중이었음)
무엇이 잘못됐는지 알 수 없음 버그 — TAS 원문 응답을 어디에도 안 남김
mail_queue 비어 있음 정상 — 단건 발송은 큐를 거치지 않는 설계
또 하나: 지금 .env가 tason.enabled = false라 앞으로도 한 통도 안 나