Symptom: the SMTP server replies 550 Unauthenticated Senders Not Allowed when you submit the message.
1. Authenticate before the MAIL FROM step. The error literally means the handover happened before auth.
2. Username must be the literal string apikey. Using your account email or the key name here is the most common cause.
3. Password is the API key itself, pasted with no trailing newline or whitespace. SMTP is line-oriented; a wrapped or padded key fails auth.
4. Use port 587 with STARTTLS (or 465 with SSL). Some clients silently skip auth on port 25 without encryption; force it.
5. In framework configs double-check the setting names: Django EMAIL_HOST_USER, Rails user_name, Laravel MAIL_USERNAME, Flask-Mail MAIL_USERNAME. A typo means the client never sends credentials.
If auth succeeds but sending fails with 403 'not authorized to send from that email address', that is sender identity, a different problem.