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

Wyszukaj - kopiuj - jak?

Object Storage Arubacloud
0 głosów
171 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,670 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ź 172 wizyt
pytanie zadane 14 listopada 2019 w HTML i CSS przez luna22 Obywatel (1,420 p.)
0 głosów
2 odpowiedzi 275 wizyt
pytanie zadane 9 kwietnia 2019 w Inne języki przez Rejfi Nowicjusz (150 p.)
0 głosów
1 odpowiedź 182 wizyt
pytanie zadane 12 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...