På torsdag 10. juni 2021 kl. 15:44:17, skrev [email protected]
<mailto:[email protected]> <[email protected] <mailto:[email protected]>>:
[...]
We only use JAMES for IMAP.
So you only use the content of /protocols/imap, correct?
This means that you had been implementing / will be implementing some
mailbox-api implementation of your own, correct?
Yes, we have a working implementation based on a custom, extended, version on
James-3.0.4-beta. We've used that for a long time and are now looking at
upgrading to v3.6. But the usage of the Username-class, with its current
"non-POJO restrictions", in the API makes things a little more difficult for us
that we'd like....
[...] @Test void arbitraryCharInLocalPart() { assertThatCode(() -> Username.of(
"Whatever_I- want3$$$###_! as lons I do not give a domain"))
.doesNotThrowAnyException(); }
The only constraint if a domain part is unspecified, is the size of 256
character and the absence of @.
To come back to your original problem, what prevents, for instance the user
scheme to be: <username>_<customer-key> ?
In short; What prevents us from using Username is (we only user "userid", ie.
Username.localPart, we don't use "domain"):
1. The "userid"-part must allow any character, including '@'. Many of our
customers have '@' in their usernames, for various reasons. (well, \n and other
control-characters are really not needed).
2. The "userid" should be case-sensitive.
Both of these are according to the IMAP-spec, so it's sad that James prevents
this. As said, using Base32 encoding lets us get around this, but it doesn't
"feel right".
The fact that Username uses toLowercase(Locale.US) actually lets one use other
interesting encodings likeecoji <https://github.com/keith-turner/ecoji>, as it
doesn't touch multibyte-characters/codepoints when lowercasing.
So - again; What about having a Username-class which is just that, any
username?
--
Andreas Joseph Krogh
CTO / Partner - Visena AS
Mobile: +47 909 56 963
[email protected] <mailto:[email protected]>
www.visena.com <https://www.visena.com>
<https://www.visena.com>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]