TF-3826 Try guessing webfinger when dns look up fail

This commit is contained in:
DatDang
2025-06-23 15:29:33 +07:00
committed by Dat H. Pham
parent d57b4cdb63
commit c558f89bd7
12 changed files with 357 additions and 2 deletions
@@ -0,0 +1,24 @@
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
enum OidcGuessingOrigin {
empty(origin: ''),
autoDiscover(origin: 'autodiscover'),
jmap(origin: 'jmap');
const OidcGuessingOrigin({required this.origin});
final String origin;
String url(String email) {
if (!EmailUtils.isEmailAddressValid(email)) {
throw ArgumentError('Invalid email address: $email');
}
final emailDomain = email.split('@').last;
return switch (this) {
OidcGuessingOrigin.empty => 'https://$emailDomain',
_ => origin.trim().isEmpty
? OidcGuessingOrigin.empty.url(email)
: 'https://$origin.$emailDomain',
};
}
}