Index | Thread | Search

From:
Martijn van Duren <openbsd+tech@list.imperialat.at>
Subject:
smtpd: return 452 on too many recipients
To:
tech@openbsd.org
Date:
Fri, 2 Jan 2026 16:50:18 +0100

Download raw body.

Thread
According to RFC5321 section 4.5.3.1.10 the correct return code for too
many recipients is 452. We currently return 451.

OK?

martijn@

diff /usr/src
path + /usr/src
commit - b9146a17035f22954d6f1be04af1b32218d3b317
blob - 195e75ec10fb05d4d30390a53c5ce5729b931505
file + usr.sbin/smtpd/smtp_session.c
--- usr.sbin/smtpd/smtp_session.c
+++ usr.sbin/smtpd/smtp_session.c
@@ -1593,7 +1593,7 @@ smtp_check_rcpt_to(struct smtp_session *s, const char 
 	}
 
 	if (s->tx->rcptcount >= env->sc_session_max_rcpt) {
-		smtp_reply(s->tx->session, "451 %s %s: Too many recipients",
+		smtp_reply(s->tx->session, "452 %s %s: Too many recipients",
 		    esc_code(ESC_STATUS_TEMPFAIL, ESC_TOO_MANY_RECIPIENTS),
 		    esc_description(ESC_TOO_MANY_RECIPIENTS));
 		return 0;
@@ -2434,7 +2434,7 @@ smtp_tx_rcpt_to(struct smtp_tx *tx, const char *line)
 	copy = tmp;
 
 	if (tx->rcptcount >= env->sc_session_max_rcpt) {
-		smtp_reply(tx->session, "451 %s %s: Too many recipients",
+		smtp_reply(tx->session, "452 %s %s: Too many recipients",
 		    esc_code(ESC_STATUS_TEMPFAIL, ESC_TOO_MANY_RECIPIENTS),
 		    esc_description(ESC_TOO_MANY_RECIPIENTS));
 		return;