The code introduced by this PR does not seem to deal properly with some valid cases. Detecting if the URI is enclosed in `<>` fails if there are header parameters. For example:
``` From: alice@x.com;tag=abc\r\n ```
The `tag` is a header parameter, is not a URI parameter. I think it should check the `uri` field from the struct tobody, not `body`.
Furthermore, even not conform with RFC, the parser was supposed cope with headers terminated only by `\n` to be able to test with messages forged in text files (e.g., during development of new features that are not supported by existing client UA).