Since you are using the submissions port, you may want to consider applying the following diff to make that port add missing message id and date headers. This may not be the final solution yet.
See <https://marc.info/?l=openbsd-tech&m=172531467910694&w=2> Index: usr.sbin/smtpd/smtp_session.c =================================================================== RCS file: /cvs/src/usr.sbin/smtpd/smtp_session.c,v retrieving revision 1.443 diff -u -p -u -r1.443 smtp_session.c --- usr.sbin/smtpd/smtp_session.c 12 Aug 2024 09:32:44 -0000 1.443 +++ usr.sbin/smtpd/smtp_session.c 10 Oct 2024 09:07:51 -0000 @@ -2626,7 +2626,7 @@ smtp_tx_dataline(struct smtp_tx *tx, con case RFC5322_END_OF_HEADERS: if (tx->session->listener->local || - tx->session->listener->port == htons(587)) { + tx->session->flags & SF_AUTHENTICATED) { if (!tx->has_date) { log_debug("debug: %p: adding Date", tx);