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
Unknown Object (File)
Thu, Dec 12, 1:37 AM
Unknown Object (File)
Sat, Dec 7, 9:36 PM
Unknown Object (File)
Tue, Dec 3, 11:26 AM
Unknown Object (File)
Oct 31 2024, 2:04 AM
Unknown Object (File)
Oct 29 2024, 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
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
Branch
mfa7
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 21472
Build 29246: Run Core Tests
Build 29245: arc lint + arc unit

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.