[MySQL][PHP]Zapisywanie podczepionych plików z maila |
[MySQL][PHP]Zapisywanie podczepionych plików z maila |
22.08.2024, 12:49:46
Post
#1
|
|
Grupa: Zarejestrowani Postów: 325 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Hej wszystkim,
Pomocy, nawet "GiePeTto" sobie nie radzi. Jakiś czas temu napisałem skrypt który sprawdza maile (raporty dmarc), jeśli raport zapisany jest w formacie gz, wszystko śmiga jak należy, zbiera mi raporty, zapisuje, przetwarza itd. Gorzej, że ostatnio zacząłem dostawać raporty w zipach. Zmodyfikowałem kod, żeby wykrywał zip, gz i xml gdyby taki się pojawił. Niestety nie chce mi nic poza gz zapisywać i nie widzę nigdzie dlaczego.
Sprawdzam pliki czy już wcześniej były zapisane, żeby w bazie nie powielać wpisów w kolejnym kroku analizuję raporty na potrzeby statystyki. I wszystko działa super ale kurcze tylko z plikami gz ..... Nie słyszałem, żeby były jakieś ograniczenia w tej kwestii. Pomóżcie. Pozdrówka Ten post edytował phpamator 22.08.2024, 12:52:08 |
|
|
22.08.2024, 13:51:41
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 523 Pomógł: 6309 Dołączył: 27.12.2004 |
Mowisz o tym kodzie
if (in_array($fileExtension, ['gz', 'xml', 'zip'])) { if (!isFileProcessed($pdo, $filename)) { $message = imap_fetchbody($inbox, $emailNumber, $i + 1); if ($part->encoding == 3) { $message = base64_decode($message); } elseif ($part->encoding == 4) { $message = quoted_printable_decode($message); } echo 'Processed attachment: ' . $filename . "\n"; $filePath = 'reports/' . $filename; file_put_contents($filePath, $message); } else { echo 'Attachment already processed: ' . $filename . '<br>'; } } ? Jesli tak to masz tam dolownie kilka linijek. Zrob var_dumpa po kazdej z nich i patrz na ktorym etapie sie wychrzania -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.08.2024, 14:55:53
Post
#3
|
|
Grupa: Zarejestrowani Postów: 325 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Hej nospor,
Dzięki za podpowiedź, jak narazie ciągle to samo, próbuję wszystkiego. Wygląda, że nie tylko ja mam taki problem. niby z zipami nie jest to takie proste |
|
|
22.08.2024, 15:09:19
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 523 Pomógł: 6309 Dołączył: 27.12.2004 |
no ale porobiles te dumpy? Patrzyles ktora dokladnie linijka sie wyklada?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.08.2024, 17:36:56
Post
#5
|
|
Grupa: Zarejestrowani Postów: 325 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Zaraz mnie trafi, widzę tylko nazwę attachmentu, jeśli gz mogę się dobrać do raw i zdekodować
ale za chiny nie mogę się dobrać do zip'a ... no ale porobiles te dumpy? Patrzyles ktora dokladnie linijka sie wyklada? Tak, ale tam się nic nie wykłada, wszystko działa tylko nie widzi zawartości. Jak jest GZ to spoko ale jak zip to już ni chuchu, nazwę widzi ale kontentu niema. Nie wiem jak to ugryźć |
|
|
22.08.2024, 19:58:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 865 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Wiesz jak wyglądają emaile? Mniej więcej tak...
Kod Content-Type: multipart/mixed; boundary="------------TaUYvFy6EV2yQ1WgLj0dvZr0" Message-ID: <fb28d9e4-0a61-4111-bcf4-ddf300b60d0e@domain> Date: Thu, 4 Jul 2024 13:30:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: pl To: client@domain From: User <user@domain> Subject: Topic This is a multi-part message in MIME format. --------------TaUYvFy6EV2yQ1WgLj0dvZr0 Content-Type: multipart/alternative; boundary="------------mARFQCGuM1C7a8WawIf0UO9O" --------------mARFQCGuM1C7a8WawIf0UO9O Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit . .. . .. . . .. .CONTENT ., . .. . . .. --------------mARFQCGuM1C7a8WawIf0UO9O Content-Type: multipart/related; boundary="------------ZeFqkVy4bqkDcUrfWPTj9O3B" --------------ZeFqkVy4bqkDcUrfWPTj9O3B Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>. .. . .. . . .. .CONTENT ., . .. . . .. </p> </body> </html> --------------ZeFqkVy4bqkDcUrfWPTj9O3B Content-Type: image/png; name="LHOungz0iNHOA3XX.png" Content-Disposition: inline; filename="LHOungz0iNHOA3XX.png" Content-Id: <part1.TbsmhwuG.6kv07t07@domain> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAFCklEQVR4AYWWA5AlWRqFv3Mz32uUq2a7 atq2baxt27aNwNi2bdu2bXumXD31MvOe3XjxoqIVsV9a5 --------------ZeFqkVy4bqkDcUrfWPTj9O3B-- --------------mARFQCGuM1C7a8WawIf0UO9O-- --------------TaUYvFy6EV2yQ1WgLj0dvZr0 Content-Type: text/plain; charset=UTF-8; name="file.conf" Content-Disposition: attachment; filename="file.conf" Content-Transfer-Encoding: base64 W0ludGVyZmFjZV0KUHJpdmF0ZUtleSA9IHlKSFhDZ1BCdko3Nkc1MWh3RERSbUhRQTJWeE56 --------------TaUYvFy6EV2yQ1WgLj0dvZr0-- Po dumpie powinieneś mieć właśnie taką treść, następnie metoda `parts` powinna dać ci właśnie takie dodatkowe części emaile zawierające zakodowane załączniki. |
|
|
23.08.2024, 14:51:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 325 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Hej Tomplus,
No tak, wszystko pięknie tyle, że w parts niema jakoś encoded zip. wyciągam tylko jeśli plik załączony jest w formacie gz, a jeśli jest w zip to mi go poprostu nie znajduje. Tytuł pliku owszem ale zawartości już ni chu chu dlatego mnie to tak drażni. Masz jakiś działający przykład dla podglądu ? |
|
|
23.08.2024, 14:53:24
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 865 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Ok, spróbuj wyświetlić surowego emaila. Zobaczysz jak skonstruowana jest część dla zip.
|
|
|
23.08.2024, 17:47:50
Post
#9
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Ja po tym kodzie nie widzę, żebyś robił cokolwiek z załącznikiem:
Tutaj sprawdzasz czy masz już taki załącznik w bazie:
ale jak już masz, to go nie nadpisujesz, a później jedynie co robisz, to pobierasz "body" z maila:
I je obrabiasz w zależności od kodowania. Pomijam fakt, ze nie widzę INSERT-a do bazy z informacją o pliku, ale... Gdzie finalnie jest załącznik z maila? W zmiennej $message? |
|
|
Wersja Lo-Fi | Aktualny czas: 12.11.2024 - 04:59 |