SMTP error 501
Syntax error in parameters or arguments.
Updated Jun 26, 2026
SMTP 501 is a permanent failure meaning "syntax error in parameters or arguments" (RFC 5321). The server recognized the command verb but rejected its argument, usually a malformed MAIL FROM or RCPT TO address, missing angle brackets, stray whitespace, or an illegal character. Fix the address syntax, for example <user@example.com>, so the parameter is well-formed, then resend.
Verify the sender and recipient addresses are correctly formatted.
What it means
501 is a permanent 5yz reply defined in RFC 5321 section 4.2.3 as "syntax error in parameters or arguments". It is different from 500. With a 501 the server understood the command verb (MAIL, RCPT, HELO) but found the argument after it malformed and unparseable. The matching RFC 3463 enhanced codes are 5.5.2 (syntax error) or 5.5.4 (invalid command arguments). Note that 501 is about syntax, not whether the mailbox exists: a well-formed address for a nonexistent recipient produces 550, not 501, and an over-long command line is classed under 500 per RFC 5321 section 4.2.2.
Common causes
A missing @, a missing domain, a stray space, or missing angle brackets. RFC 5321 expects the form MAIL FROM:<user@example.com>.
Control characters, unencoded non-ASCII, or unbalanced quotes in the address or argument.
RCPT TO with nothing after it, or a bare HELO or EHLO with no hostname argument.
The local part may be at most 64 octets and the domain at most 255 octets (RFC 5321 section 4.5.3.1). An over-length address can be rejected as syntactically invalid.
How to fix it
- Read the full server reply
The text after 501 usually names the offending command, for example "501 5.5.4 Syntax error in parameters or arguments (MAIL FROM)". That tells you which argument to correct.
- Correct the address syntax
Make every address a single fully-qualified local@domain with no leading or trailing whitespace, and wrap it in angle brackets on raw SMTP: "MAIL FROM:<sender@yourdomain.com>" and "RCPT TO:<recipient@example.com>". Strip display names and commas, and send one address per RCPT TO.
- Validate before sending
Normalize addresses in code: trim whitespace, confirm exactly one @, and enforce a local part of 64 octets or fewer and a domain of 255 octets or fewer, so a bad value never reaches the SMTP conversation.
- Check every command argument
Make sure EHLO or HELO is followed by a valid hostname or address literal, and that any ESMTP parameters such as SIZE= or BODY= carry valid values.
- Keep command lines within limits
RFC 5321 section 4.5.3.1.4 caps a command line plus CRLF at 512 octets. Exceeding it is reported as 500 rather than 501, but the remedy is the same: restructure a very long header or argument rather than emitting one oversized line.
- Let a vetted library build the commands
Stop hand-constructing envelope addresses and let Nodemailer, Python smtplib, or an API assemble RFC-compliant commands. Courier validates recipient data before it reaches the provider, so broken addresses are caught early.
Paired code
A real bounce often shows both a 3-digit code and an enhanced code together. This one commonly pairs with:
Common questions
Is SMTP 501 the same as 500?
No. 500 means the command verb itself was unrecognized or malformed. 501 means the verb was understood but its argument is syntactically invalid, such as a bad address in MAIL FROM or RCPT TO. Both are permanent 5yz failures, but 501 points you at the argument, not the command name.
Does SMTP 501 mean the recipient does not exist?
No. 501 is a syntax failure. A well-formed address that has no mailbox returns 550, not 501. If the address parses but the mailbox is missing, look for 550 instead.
What enhanced status code goes with SMTP 501?
The RFC 3463 codes 5.5.2 (syntax error) or 5.5.4 (invalid command arguments).