Esse problema pode ser resolvido em roundcube, dovecot ou em seu backend de nome de usuário.
-
O Roundcube tem a opção de auto anexar partes do domínio se nenhum domínio for fornecido (conforme proposto por Kondybas ). Mas não será muito útil no seu caso. É claro que você pode fazer o patch do roundcube (com linguagem PHP) para adicionar sua lógica.
-
O Dovecot tem a opção de eliminar domínio (conforme proposto em A pesquisa de usuários do Dovecot falha ao usar o nome de usuário @ formato de domínio ), mas não pode fazer decodificação condicional (por exemplo, strip domain if domain = @ ourdomain.com). É claro que você pode fazer o patch dovecot (com linguagem C) para adicionar sua lógica.
-
O backend de nome de usuário também é uma opção. Você não fornece o backend que você usa (SQL, LDAP, mecanismo personalizado). Posso imaginar que você tenha uma coluna de nome de usuário com dois formatos com e sem domínio . Agora, você pode converter todos os nomes de usuário sem domínio para se tornar username @ ourdomain. Você pode combinar esse processo com a opção 1 (roundcube auto append domain) para que o nome de usuário e o nome de usuário @ ourdomain possam fazer login.