FK~

Moje odkazy

Ostatní odkazy

Close Windows
Nenajdete mě na Facebooku ani Twitteru
Rozpad EU
Jsem členem FSF
There Is No Cloud …just other people's computers.
Sane software manifesto / Manifest příčetného softwaru

Kontrola e-mailových adres

vydáno: 16. 4. 2011 20:53, aktualizováno: 10. 12. 2013 22:00

Možná si v tabulkovém editoru vedete seznam kontaktů a lidem pak posíláte e-maily. Občas se vám jistě stane, že se vám e-mail vrátí jako nedoručitelný, protože někdo udělal při opisování adresy chybu a v seznamu máte neplatné adresy. V následujícím návodu se dozvíte, jak chybné adresy najít a opravit ještě před odesláním.

kontrola e-mailových adres

Potřebný software

Pokud ho ještě nemáme, stáhneme si a nainstalujeme LibreOffice. Tento kancelářský balík je zadarmo a co je ještě lepší, je to svobodný software. Jestli máte OpenOffice, můžete použít i tento balík.

Filtrujeme neplatné adresy

Náš seznam adres vypadá přibližně tak, jak je uvedeno na prvním obrázku. Akorát těch adresu budeme mít třeba tisíc, to už se ručně kontroluje dost špatně. Použijeme tedy funkci pro filtrování. Najdeme ji v hlavní nabídce: Data / Filtr / Standardní filtr:

OpenOffice, LibreOffice, filtr, menu

OpenOffice, LibreOffice, filtr, dialog

  • zvolíme sloupec, který obsahuje adresy
  • jako podmínku zadáme nerovnost: <>
  • hodnota je: ^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$
  • zaškrtneme volbu Regulární výraz, protože ta podivnost výše je tzv. regulární výraz. Jestli vás to zajímá, můžete si o nich něco přečíst třeba na Ábíčku, na Rootu nebo v dokumentaci Perlu.

Teď už vidíme jen adresy, které jsou neplatné – zobrazují se jen řádky 4 a 7 – a můžeme je opravit:

Výsledek našeho snažení – filtrované neplatné adresy

Když máme hotovo, filtr zase můžeme zrušit: Data / Filtr / Odstranit filtr.

Někomu tohle asi přijde moc složité – ano, je to složité – kdo si rozumí s příkazovou řádkou, tomu stačí dva unixové (resp. GNU) příkazy: cat a grep:

cat adresy.csv | grep -v -E "^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$";

Na závěr je třeba říct, že použitý regulární výraz není úplně dokonalý – neodhalí některé chybné adresy a naopak někdy způsobí falešný poplach (např. nepodporuje IDN domény), vybral jsem ho ale pro jednoduchost a názornost (a taky se těším, až narazím na někoho, kdo má e-mail v doméně .museum :-) Nejčastější překlepy, jako je čárka místo tečky nebo chybějící zavináč, tento RegExp v pohodě odhalí. Lepší najdete třeba v perlovském modulu Mail::RFC822::Address.

A úplně na závěr: pokud budete posílat spam, skončíte v pekle.

Témata: [e-mail]

Komentáře čtenářů


Jenda, 16. 4. 2011 23:17, IP adresa [odpovědět]

A co třeba jenda@[213.220.240.179]? mailx mi sice vynadá, že prý domain literals not allowed, ale teoreticky by to chodit mělo ;-)


xkucf03, 16. 4. 2011 23:24, Mělo – můžeš takový [odpovědět]

Mělo – můžeš takový regexp napsat za domácí úkol :-) A nezapomeň na podporu IPv6 adres. Někde už jsem takový výraz viděl, ale bylo to hodně dlouhé a ne zrovna pěkné čtení – nechtěl jsem tady nikoho znechutit nebo odradit :-)


Marek, 17. 4. 2011 14:08, Štítky [odpovědět]

Některé emailové služby (gmail?) umožňují štítkování emailů pomocí symbolu plus následovně: pepa@domain.tld pepa+tag@domain.tld pepa+tag+jinytag@domain.tld

Přidat komentář

reagujete na jiný komentář (zrušit)
jméno nebo přezdívka
název příspěvku
webová stránka, blog
e-mailová adresa
nápověda: možnosti formátování
ochrana proti spamu a špatným trollům

Náhled komentáře