Validação de email em txt?

5 respostas
R

Pessoal, estou precisando fazer um trabalho e gostaria de uma ajuda na minha formulação de ideias.
Preciso criar um programa(ou metodo) que receba um arquivo texto(pode ser .txt, .doc, o fato é que será puramente texto).
e dentro desse arquivo texto, ele deverá me retornar um array(ou lista, o que for mais conveniente) todos os email válidos…
por exemplo, imagine um texto qualquer.

diusdisihdshidihsdhisd
igfidfghifdgid
gijdjigijdgd
[email removido] disjdisjidsjia
dojasjdjdijdijsaijd [email removido] sadijdjiasdjia

neste o caso, o metodo me retornara [email removido] e [email removido]
sei que devo fazer uma validação de email(ou seja, ver quais caracteres sao permitidos, quantos antes do arroba sao permitidos, quantos depois do arroba sao permitidos. Quantos PONTOS sao permitidos após o arroba, enfim… Procurei o RFC de email, achei varios porém nenhum foi satisfatorio para mim.
Alguem poderia me ajudar a organizar as ideias de como eu posso fazer para alem dele validar corretamente uma String sendo email, ele percorra todo o txrt a procura de um ou vários emails???

5 Respostas

T

Isto é um email válido, por incrível que pareça (a exclamação era usada para roteamento interno de emails, e o % também):

abc![email removido]

Note que é mais difícil que parece. Então acho que seja suficiente fazer o seguinte:

  • Procurar (usando expressão regular talvez) algo que possa ter os seguintes caracteres antes da arroba: A-Z, a-z, 0-9, !#$%_+^~. e depois da arroba: A-Z, a-z, 0-9, “.”
  • Depois, pegando aquela lista de extensões permitidas (códigos dos países, como “br”, “ar” etc., que você acha facilmente, e “biz”, “com”, “edu”, “mil”, “org”, “info”, “xxx” etc). Deve haver pelo menos um ponto depois da arroba (exemplo: [email removido]).
maquiavelbona
Ler arquivo plano(txt) : <a href="http://guj.com.br/java.tutorial.artigo.13.1.guj">http://guj.com.br/java.tutorial.artigo.13.1.guj</a>

Ler arquivo MS-Format (doc) : <a href="http://jakarta.apache.org/poi/">http://jakarta.apache.org/poi/</a>

Separar as strings: <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)</a>

Validar: <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)</a>

A expressão regular de validação aí é você que procura né?

Até!

R

Primeiro vc deverá estabelecer um padrão na formulação desse documento texto para poder recuperar os e-mail’s.

Pode ser uma “,” entre os e-mails ou um espaço um uma quebra de linha… etc…

Ai fica mais simples, vc lê o arquivo e cria uma rotina que preencha um array com o conteudo encontrado no arquivo jogando um e-mail em cada posição. Nesse exemplo teriamos o conteúdo separado por virgulas:

Arquivo texto a ser lido:

jdsadjsojd,dsodosjo,[email removido],dsds___asd*-,hhhh,[email removido],ddhdh

Array: Carregado a partir do conetudo lido separando os textos por virgulas

posição 0 - jdsadjsojd
posição 1 - dsodosjo
posição 2 - [email removido]
posição 3 - dsds___asd*-
posição 4 - hhhh
posição 5 - [email removido]
posição 6 - ddhdh

Agora basta eliminar do array os e-mails inválidos e por fim imprimir o array.

Boa Sorte!

R

vle pela dica pessoal.
vou ler a respeito maquiavelbona :smiley:
entendi seu ponto thingol… o que eu queria mais saber mesmo era se tinha uma padronização do que é permitido de caracteres num e-mail. Mas pelo que entendi, essa validação é pessoal, nao? tirando talvez o ~, acentos, e coisa do tipo, posso colocar qualquer caractere nao é?

amigo rdo_marini, também percebi sua ideia, mas no meu caso seria o espaço, como no exemplo em quote que fiz. o arquivo texto será colocado de fora. Por exemplo, recebi um email com varias informações . copio todo o texto num .txt por exemplo e dali retorno todos os emails dentro desse txt(e apenas os emails).

Só vou poder organizar melhor minhas ideias semana que vem quando acabo minhas provas, mas retorno aqui com mais duvidas.
por enquanto, agradeço aos que puderam me ajudar :smiley:

R
<blockquote><div class="quote-author">maquiavelbona:</div>Ler arquivo plano(txt) : <a href="http://guj.com.br/java.tutorial.artigo.13.1.guj">http://guj.com.br/java.tutorial.artigo.13.1.guj</a>

Ler arquivo MS-Format (doc) : <a href="http://jakarta.apache.org/poi/">http://jakarta.apache.org/poi/</a>

Separar as strings: <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)</a>

Validar: <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)" data-bbcode="true">http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)</a>

A expressão regular de validação aí é você que procura né?

Até!
amigo, consegui fazer com sucesso a leitura em arquivos .txt…
mas li o site sobre ms-word mas nao consegui entender como meu programa ler tb o .doc
voce poderia me ajudar?
baixei o arquivo bin e o src de 10 e 22mb respectivamente mas o que faço com eles? como uso as funções???
ou alguem mostrar um pequeno tutorial???

Criado 12 de junho de 2007
Ultima resposta 17 de jun. de 2007
Respostas 5
Participantes 4