Page MenuHomePhabricator

Drop empty inbound mail at the beginning of the receive workflow, not inside object handlers

Authored by epriestley on Jan 3 2019, 2:28 PM.
Referenced Files
Unknown Object (File)
Mon, Jul 25, 1:15 AM
Unknown Object (File)
Jul 14 2022, 11:13 PM
Unknown Object (File)
Jul 5 2022, 2:29 PM
Unknown Object (File)
Jul 5 2022, 8:24 AM
Unknown Object (File)
Jun 25 2022, 11:31 PM
Unknown Object (File)
Jun 25 2022, 12:49 PM
Unknown Object (File)
Jun 22 2022, 10:57 AM
Unknown Object (File)
Jun 19 2022, 5:17 PM



Ref T920. Ref T7477. We currently drop empty mail only once it reaches the ReplyHandler layer.

I think no plausible receiver can ever do anything useful with this kind of mail, so we can safely drop it earlier and simplify some of the logic. After T7477, we'd end up throwing multiple exceptions if you sent empty mail to several valid receivers.

(I also want to move away from APIs oriented around raw addresses in more specialized layers, and this is one of the few callsites for raw mail address information.)

This requires updating some unit tests to actually have message bodies, since they failed with this error before hitting the other errors otherwise.

Test Plan

Used bin/mail receive-test to send empty mail, got appropriate "err:empty" out of it.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

Harbormaster returned this revision to the author for changes because remote builds failed.Jan 3 2019, 2:29 PM
Harbormaster failed remote builds in B21471: Diff 47618!
  • Fix more unit tests, including a "TODO" from May 2013!
This revision is now accepted and ready to land.Jan 3 2019, 8:35 PM
This revision was automatically updated to reflect the committed changes.