brazilian-utils / brutils-python

Biblioteca de utilitários projetada para validar, gerar e manipular dados de acordo com as particularidades do Brasil 🇧🇷
https://pypi.python.org/pypi/brutils
MIT License
198 stars 45 forks source link

Validar e-mail #179

Closed antoniamaia closed 11 months ago

antoniamaia commented 11 months ago

Seu pedido de recurso está relacionado a um problema? Por favor, descreva. Verificar se uma string corresponde a um e-mail válido. As regras para validar um endereço de e-mail geralmente seguem as especificações definidas pelo RFC 5322 (atualizado pelo RFC 5322bis), que é o padrão amplamente aceito para formatos de endereços de e-mail. Aqui estão algumas regras gerais que você pode usar como ponto de partida:

1. Formato Básico: Um endereço de e-mail geralmente consiste em duas partes separadas por um "@" (arroba). A parte antes do "@" é o nome do usuário (local part), e a parte depois do "@" é o domínio (domain part).
2. Nome de Usuário: O nome de usuário pode conter letras (maiúsculas e minúsculas), números, pontos (.), hífens (-) e underscores (_). No entanto, não pode começar ou terminar com ponto e não pode conter dois pontos consecutivos.
3. Domínio: O domínio deve ter pelo menos um ponto (.), não pode começar ou terminar com ponto e não pode conter espaços em branco. Além disso, o domínio deve conter apenas letras (maiúsculas e minúsculas) e números, além de hífens (-) e pontos. 
4. Tamanho: O nome de usuário e o domínio têm limites de tamanho. O nome de usuário geralmente não deve exceder 64 caracteres, e o domínio não deve exceder 255 caracteres.
5. Validação de Formato Geral: Você pode usar expressões regulares para validar o formato geral do endereço de e-mail. 

Descreva a solução que você gostaria Chamar um novo utilitário passando uma String e receber um boolean indicando se o e-mail é válido ou não.

Descreva alternativas que você considerou Criar um novo utilitário is_valid_email.

def is_valid_email(email):
...

Exemplo de uso:

from brutils import is_valid_email

>>> is_valid_email("joao.ninguem@gmail.com")
True
>>> is_valid_email(".joao.ninguem@gmail.com")
False
>>> is_valid_email("joao.ninguem@gmail.")
False
>>> is_valid_email("joao ninguem@gmail.com")
False

Contexto adicional Adicione qualquer outro contexto ou capturas de tela sobre o pedido de recurso aqui.

Anurag-Nagpal commented 11 months ago

Hi @antoniamaia, can I work on this? if yes you can assign this to me please.

antoniamaia commented 11 months ago

@Anurag-Nagpal sure!! Thanks for collaborating! 🤝

Anurag-Nagpal commented 11 months ago

Hi @antoniamaia , can you review this https://github.com/brazilian-utils/brutils-python/pull/213, thanks