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

Wyszukaj - kopiuj - jak?

0 głosów
81 wizyt
pytanie zadane 16 maja 2018 w Offtop przez Fatafim 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 Maniak (64,290 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 Fatafim 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 Mędrzec (159,170 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 Fatafim Nowicjusz (120 p.)
Właśnie tu jest problem, że nie potrafię programować :)
0 głosów
odpowiedź 17 maja 2018 przez Chess Maniak (64,290 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 Fatafim 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 Maniak (64,290 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
2 odpowiedzi 65 wizyt
0 głosów
1 odpowiedź 56 wizyt
pytanie zadane 12 listopada 2018 w C i C++ przez gorgonek Obywatel (1,130 p.)
0 głosów
1 odpowiedź 1,273 wizyt
pytanie zadane 19 września 2016 w Offtop przez kaja890 Nowicjusz (120 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

62,468 zapytań

108,621 odpowiedzi

226,795 komentarzy

36,302 pasjonatów

Przeglądających: 69
Pasjonatów: 5 Gości: 64

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...