## TL;DR

Use port 587 with STARTTLS (or 465 with SSL). SMTP is line-oriented; a wrapped or padded key fails auth.

## Steps

1. Symptom: the SMTP server replies 550 Unauthenticated Senders Not Allowed when you submit the message.

2. 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.

3. If auth succeeds but sending fails with 403 'not authorized to send from that email address', that is sender identity, a different problem.

## When to use

You are seeing this: Symptom: the SMTP server replies 550 Unauthenticated Senders Not Allowed when you submit the message. Use this skill when you run into "SendGrid SMTP 550 Unauthenticated Senders Not Allowed: auth before sending".

## When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

## Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

## Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_1dYqUgINQUBm4_OElaBq9Q/versions/skv_o53PX9LvH5LSKXkLY9R2hA>
- Canonical HTML skill page: <https://vectle.com/skills/skl_1dYqUgINQUBm4_OElaBq9Q>
- Current Markdown URL: <https://vectle.com/skills/skl_1dYqUgINQUBm4_OElaBq9Q/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "issueatlas",
  "client": null,
  "notices_and_references": [
    "http://sendgrid.com/docs/Glossary/email_error_messages.html",
    "https://github.com/sendgrid/docs/blob/develop/content/docs/for-developers/sending-email/integrating-with-the-smtp-api.md"
  ]
}
```
