Eu li que pela primeira parte padrão de e-mail é maiúsculas e minúsculas, no entanto eu tentei enviar e-mail para [email protected]
, [email protected]
e [email protected]
- que chegou em cada caso.
Como os servidores de email lidam com nomes de usuário? É possível errar com o caso e essa mensagem não seria entregue? É realmente muito importante usar exatamente a mesma letra maiúscula, como foi escrito durante o registro ao fornecer seu endereço de e-mail?
Respostas:
No RFC 5321, seção 2.3.11 :
Portanto, sim, a parte anterior ao "@" pode fazer distinção entre maiúsculas e minúsculas, pois está totalmente sob o controle do sistema host. Na prática, porém, nenhum sistema de correio amplamente utilizado distingue endereços diferentes com base no caso.
A parte após o sinal @, porém, é o domínio e, de acordo com a RFC 1035 , seção 3.1,
Em resumo, você pode tratar endereços de email como não diferenciando maiúsculas de minúsculas.
fonte
Sei que essa é uma pergunta antiga, mas só quero comentar aqui: em qualquer extensão, os endereços de email diferenciam maiúsculas de minúsculas, a maioria dos usuários seria "muito imprudente" ao usar ativamente um endereço de email que requer letras maiúsculas. Em breve, eles parariam de usar o endereço porque perderiam muitas correspondências. (A menos que eles tenham um motivo específico para dificultar as coisas e esperem emails apenas de remetentes específicos que eles conhecem).
Isso ocorre porque existem seres humanos imperfeitos e software imperfeito, (surpresa!), Que assumirá que todos os emails são minúsculos e, por esse motivo, esses seres humanos e software enviarão mensagens usando uma "versão mais baixa" do endereço, independentemente de como ele foi fornecido para eles. Se o destinatário não puder receber essas mensagens, não demorará muito para perceber que está faltando muito e mudar para um endereço de e-mail apenas em minúsculas ou para que o servidor esteja configurado para não diferenciar maiúsculas de minúsculas.
fonte
Muito tarde para este post, mas tenho algo um pouco diferente a dizer ...
Bem, "Depende ..." (TM)
Algumas organizações realmente acham que é uma boa ideia e seus servidores de email reforçam a distinção entre maiúsculas e minúsculas.
Portanto, para esses lugares malucos, "Sim, os e-mails diferenciam maiúsculas de minúsculas".
O princípio do KISS sugere que nossos sistemas usem emails que não diferenciam maiúsculas de minúsculas.
Considerando que o princípio Robustez sugere que aceitamos emails com distinção entre maiúsculas e minúsculas.
Solução:
Isso significa que, se este e-mail já existir: [email protected]
... e outro usuário aparece e deseja usar este email: [email protected]
... que nossa lógica de pesquisa que não diferencia maiúsculas de minúsculas retornaria uma mensagem de erro "Esse email já existe".
Agora, você tem uma decisão a tomar: essa solução é adequada no seu caso?
Caso contrário, você poderá cobrar uma taxa de conveniência aos clientes que exigirem suporte para seus e-mails com distinção entre maiúsculas e minúsculas e implementar lógica personalizada que permita o [email protected] em seu sistema, mesmo se [email protected] já existir.
Nesse caso, sua lógica de pesquisa / validação de email pode se parecer com algo como esse pseudocódigo:
Dessa forma, você está impondo a distinção entre maiúsculas e minúsculas, mas permitindo que os clientes paguem por esse suporte se estiverem usando sistemas de e-mail compatíveis com esse absurdo.
ps ILIKE é uma palavra-chave do PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html
fonte
%
ou, mais provavelmente_
query = ...
linhas porquery = // Insert case-sensitive/insensitive search here
comentários simples, pois mantêm a conversa longe do tópico sobre injeção de SQL e se concentram no que você está tentando mostrar. Em outras palavras, mantenha-o na lógica, não na implementação. Silenciará os críticos.Padrões Abertos da IETF RFC 5321 2.4. Princípios Gerais de Sintaxe e Modelo de Transação
fonte
Por @ l3x, depende.
Existem claramente dois conjuntos de situações gerais em que a resposta correta pode ser diferente, juntamente com um terceiro que não é tão geral:
a) Você é um usuário enviando e-mails particulares :
Pouquíssimos sistemas de email modernos implementam a distinção entre maiúsculas e minúsculas; portanto, você provavelmente pode ignorar maiúsculas e minúsculas e escolher qualquer que deseje usar. Não há garantia de que todos os seus e-mails serão entregues - mas tão poucos e-mails seriam afetados negativamente que você não deveria se preocupar com isso.
b) Você está desenvolvendo software de correio :
Veja o trecho 2.4 do RFC5321 na parte inferior.
Ao desenvolver um software de correio, você quer ser compatível com RFC. Você pode fazer com que os endereços de e-mail de seus próprios usuários não façam distinção entre maiúsculas e minúsculas, se desejar (e provavelmente deve). Mas, para ser compatível com RFC, você DEVE tratar endereços externos como distinção entre maiúsculas e minúsculas .
c) Gerenciando listas de endereços de e-mail de propriedade da empresa como funcionário :
É possível que o mesmo destinatário de email seja adicionado a uma lista mais de uma vez - mas usando maiúsculas e minúsculas. Nessa situação, embora os endereços sejam tecnicamente diferentes, isso pode resultar em um destinatário recebendo emails duplicados. O modo como você trata essa situação é semelhante à situação a), pois provavelmente você pode tratá-las como duplicatas e remover uma entrada duplicada. É melhor tratá-los como casos especiais, no entanto, enviando um email de "lembrete" para os dois endereços para perguntar se eles são duplicados um do outro e, em caso afirmativo, qual endereço de email o destinatário prefere que você use.
Do ponto de vista jurídico, se você remover uma duplicata sem reconhecimento / permissão dos dois endereços, poderá ser responsabilizada por vazar informações / autenticação privadas para um endereço não autorizado, simplesmente porque dois destinatários realmente separados têm o mesmo endereço em casos diferentes .
Trecho da RFC5321 2.4:
fonte