• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyszukaj - kopiuj - jak?

VPS Starter Arubacloud
0 głosów
169 wizyt
pytanie zadane 16 maja 2018 w Offtop przez adadadadadadad Nowicjusz (120 p.)
Witajcie,

mam taką sytuację: mam zapisane ok. 540 maili na pendrive, z których muszę wyciągnąć wyłącznie adresy odbiorców. No i moje pytanie - jak to inteligentnie zrobić?

Jeszcze udało mi się zgrać całą ich treść do jednego pliku tekstowego, ale nie mam pojęcia jak skopiować z tego same adresy.

s-o-s...
komentarz 16 maja 2018 przez Chess Szeryf (76,710 p.)
Podaj strukturę tego pliku, w jakim formacie masz zapisane te e-mail'e? Czy są tam jakieś przecinki, średniki, itp.?
komentarz 16 maja 2018 przez adadadadadadad Nowicjusz (120 p.)
Pliki są zapisane w .eml, jest to normalna korespondencja, więc zawierają wszystkie znaki jakich używa się w rozmowie.

2 odpowiedzi

0 głosów
odpowiedź 16 maja 2018 przez Ehlert Ekspert (212,630 p.)

W jakimkolwiek języku programowania (Java, C++, PHP, Js, C, Python nawet Pascal) iterujesz po linijkach i sprawdzasz czy zaczyna się od From:​​​​​​. Jeśli tak to wycinasz maila i już. 

komentarz 16 maja 2018 przez adadadadadadad Nowicjusz (120 p.)
Właśnie tu jest problem, że nie potrafię programować :)
0 głosów
odpowiedź 17 maja 2018 przez Chess Szeryf (76,710 p.)
edycja 17 maja 2018 przez Chess

Żeby móc skorzystać z tego skryptu poniżej zainstaluj PHP + server. Możesz to zrobić np. instalując gotowy pakiet XAMPP.

<pre>
<?php 
 
$handle = fopen('something5.txt','r');

if($handle) {
	
	while((  $line  = fgets($handle))!== false){ 
		$eml = (string)htmlspecialchars($line);
		preg_match_all ('~<(\b(.*?))>~m',htmlspecialchars_decode($eml) ,$matches);

		if(empty($matches[2])){
			null;
		}else{ 
			print_r($matches[2][0].'<br />');
		}

	}
	if(!feof($handle)){ 
		echo "Error";
	}
	fclose($handle);
}

?>
</pre>

O ile dobrze kojarzę, to do parsowania formatu .eml są specjalne funkcje, takie jak:

mailparse_determine_best_xfer_encoding, mailparse_msg_create, mailparse_msg_extract_part_file, itd..

Spróbuj może tą funkcją:

<?php
$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));
?>

http://php.net/manual/en/function.mailparse-rfc822-parse-addresses.php

Musisz jednak wcześniej zainstalować jedną .DLL'kę.

http://forum.wampserver.com/read.php?2,83463,83463

Instalacja:

https://pecl.php.net/package/mailparse/3.0.2/windows

Wybierasz swoją wersję PHP i naciskasz na Thread Safe (TS) x86  lub Thread Safe (TS) x64, zależnie od tego jaką masz wersję systemu. Po zainstalowaniu przenosisz plik z rozszerzeniem .dll do katalogu ze swoimi dll'kami. U mnie to jest: C:\xampp\php\ext, następnie przechodzisz do pliku php.ini (u mnie się tak nazywa) w katalogu C:\xampp\php i np. pod tą linią ;extension=php_shmop.dll dodajesz tę linię extension=php_mailparse.dll. Po wszystkim resetujesz swój server i wpisujesz w pliku polecenie phpinfo();. Następnie naciskasz ctrl+f i w polu wyszukiwania wpisujesz mailparse, jeśli to znajdzie wyszukiwarka, to znaczy, że wszystko pomyślnie zainstalowałeś.

 

 

komentarz 17 maja 2018 przez adadadadadadad Nowicjusz (120 p.)

Zainstalowałem to za pomocą Wampservera akurat, ale mniejsza z tym. Podmieniłem plik tekstowy w którym mam zapisaną całą treść w 'something.txt', ale z tego wyskakuje mi tysiąc stron nieużytków rolnych, tj pierwsze dwie linijki to adres nadawcy i adres pierwszego odbiorcy, a dalej już nawet nie wiem czym się ten skrypt kierował. Może coś źle zrozumiałem z Twojej instrukcji, ale niewiele w życiu robiłem z php więc nie bij smiley

komentarz 17 maja 2018 przez Chess Szeryf (76,710 p.)

Czy możesz podać kawałek tego tekstu z tymi e-mail'ami, bo mówiąc szczerze nie wiem jaki mam RegExp... napisać?

Coś na wzór tego:

jasdfhjldashfjdsalkfhadslfdsh
ahsdfhljdsafhdshjhdsfl<Underline@w2.org>
asjkdfhjakdshfljhasldjfhdslfhads

Żebym po prostu w tym tekście widział e-mail/e-mail'e.

Podobne pytania

0 głosów
1 odpowiedź 169 wizyt
pytanie zadane 14 listopada 2019 w HTML i CSS przez luna22 Obywatel (1,420 p.)
0 głosów
2 odpowiedzi 273 wizyt
pytanie zadane 9 kwietnia 2019 w Inne języki przez Rejfi Nowicjusz (150 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 12 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...