resolveMailboxDirectoryPath method

({String? domainDir, String userDir}) resolveMailboxDirectoryPath(
  1. String mailbox
)

Implementation

({String userDir, String? domainDir}) resolveMailboxDirectoryPath(
  String mailbox,
) {
  var parts = mailbox.split('@');

  var username = parts[0];
  var domain = parts.length > 1 ? parts[1] : null;

  var userDir = removeDiacritics(username).trim().toLowerCase();

  // ignore dots:
  userDir = userDir.replaceAll(RegExp(r'\.'), '');

  // ignore anything after + in username:
  userDir = userDir.replaceAll(RegExp(r'\+.*'), '');

  // remove non-word characters:
  userDir = userDir.replaceAll(RegExp(r'\W'), '_');

  String? domainDir;
  if (domain != null) {
    domainDir = removeDiacritics(domain).trim().toLowerCase();
    domainDir = domainDir.replaceAll(RegExp(r'[^\w.]'), '_');
    domainDir = domainDir.replaceAll(RegExp(r'^\.+'), '');
    if (domainDir.isEmpty) {
      domainDir = null;
    }
  }

  return (userDir: userDir, domainDir: domainDir);
}