Moje odkazy
Obsah článku:
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.
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.
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:
^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$
Teď už vidíme jen adresy, které jsou neplatné – zobrazují se jen řádky 4 a 7 – a můžeme je opravit:
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]
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 ;-)
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 :-)
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