Page MenuHomePhabricator

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

Authored by epriestley on Jan 3 2019, 2:28 PM.
Tags
None
Referenced Files
F14009926: D19947.diff
Thu, Oct 31, 2:04 AM
F14007715: D19947.id47618.diff
Tue, Oct 29, 10:22 AM
Unknown Object (File)
Oct 10 2024, 11:49 PM
Unknown Object (File)
Sep 20 2024, 10:14 PM
Unknown Object (File)
Sep 6 2024, 4:55 AM
Unknown Object (File)
Sep 6 2024, 4:55 AM
Unknown Object (File)
Sep 6 2024, 4:55 AM
Unknown Object (File)
Sep 6 2024, 4:55 AM
Subscribers
None

Details

Summary

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

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
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.