Witam,

napisałem skrypt, który z poziomu php łączy się z serwerem za pomocą pop3 oraz pobiera wiadomości email, w których załączone są pliki CSV. Nagłowki maila jakie otrzymuję wyglądają mniej więcej tak:

  1. '+OK 358845 octects
  2. X-From_: xxx@xxx.pl Thu Jun 29 23:00:01 2006
  3. Return-Path:
  4. Delivered-To: xxx@xxx.pl
  5. Received: from xxx.xxx.pl (xxx.x.xxx.xx)
  6. by xxx.home.net.pl with SMTP; Thu, 29 Jun 2006 20:59:59 -0000
  7. Received: (qmail 3497 invoked from network); 29 Jun 2006 21:00:00 -0000
  8. Received: from xxx-12-3.xxx.pl (HELO seagull) (xxx.xxx.x.xx)
  9. by xxx-4-2.xxx.pl with SMTP; 29 Jun 2006 21:00:00 -0000
  10. From: "xxxx"
  11. Subject: XX_XXXX.CSV
  12. To: xxx@xxx.pl
  13. Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf";
  14. MIME-Version: 1.0
  15. Date: Thu, 29 Jun 2006 23:00:01 +0200
  16. X-Priority: 3
  17. X-Library: Indy 8.0.25
  18. X-Mailer: XXXX
  19.  
  20. This is a multi-part message in MIME format
  21.  
  22. --=_NextPart_2rfkindysadvnqw3nerasdf
  23. Content-Type: text/plain
  24. Content-Transfer-Encoding: 7bit
  25.  
  26. XX_XXXX.CSV
  27.  
  28. --=_NextPart_2rfkindysadvnqw3nerasdf
  29. Content-Type: application/octet-stream;
  30. name="XX_XXXX.CSV"
  31. Content-Transfer-Encoding: base64
  32. Content-Disposition: attachment;
  33. filename="XX_XXXX.CSV"
  34.  
  35. QWdlbnQ7TWllanNjb3dvc2M7VWxpY2E7S29kIHBvY3p0b3d5O1dvamV3b2R6dHdvO0dvZHppbnkg
  36. b3R3YXJjaWENCkQuSC4gU3Rva3JvdGthO0JhcmRvO3VsLiBHs/N3bmEgMTE7NTctMjU2O0RvbG5v
  37. ... i tak dalej.... czyli załącznik zakodowany base64


Generalnie musze pobrać nazwę pliku, dobrać się do jego zawartości, która zaczyna się (w tym przypadku: QWdlbnQ7TWllanN (...)), a następnie pobrać wszystkie dane z pliku (jak wcześniej pisałem csv) i wrzucić do bazy danych. To wszystko jest proste i nie ma z tym problemów. Pojawia się tylko jeden. Podczas wrzucania danych muszę dokonać pewnych porównań na ciągach znaków, a także ostatecznie wrzucić dane do bazy danych w utf'ie. I z tym mam problemy, gdyż nie wiem w jakim formacie są dane (czy w ogóle w jakim kolwiek są?). Cały skrypt, jest pisany w utf. W skrypcie dokonuję porównania (np. województwa) i na polskich znakach się wysypuje. Jakieś pomysły, sugestie?

Będę wdzieczny za każde informacje. Pozdrawiam.