![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Pisze wyrazenie regularne do pobrania Content-Typea z czystego maila i natrafilem na maly problem.
Mozliwe ustawienia Content-Type to: Kod Content-Type: multipart/alternative; boundary="jh2x4CpaBw6eoB8" Kod Content-Type: multipart/alternative; boundary=jh2x4CpaBw6eoB8 Kod Content-Type: multipart/alternative; boundary="jh2x4CpaBw6eoB8" Kod Content-Type: multipart/alternative; boundary=jh2x4CpaBw6eoB8 Kod Content-Type: multipart/alternative; boundary="jh2x4CpaBw6eoB8" Kod Content-Type: text/plain; charset="utf-8" Kod Content-Type: text/plain; charset="utf-8" itd... Narazie mam takei wyrazenie: Kod /^content-type: (.*);$/im ktore pobiera mi ta pierwsza opcje (multipart/alternatice itp.) Nie wiem jednak jak sie zabrac do drugiej czesci: boundary i charset. Moze ma ktos na to pomysl ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No i w tablicy aMatches mamy: Kod Array ( [0] => Array ( [0] => Content-Type: multipart/related; type="multipart/alternative"; boundary="__mime_boundary_related__NEXT_PART_" ) [1] => Array ( [0] => multipart/related; type="multipart/alternative"; boundary="__mime_boundary_related__NEXT_PART_ ) ) No i mysle ze dobranie sie do szczegolow nie bedzie stanowilo problemu. BTW: to musza byc regularki ![]() Ten post edytował bendi 30.03.2005, 12:25:01 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzieki
![]() Niestety IMAP nie wchodzi tutaj w gre. Mail jest przesylany wprost do skryptu php przez php://stdin dlatego regularne wydaja mi sie tutaj najodpowiedniejsze. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem co knujesz, ale jezeli budujesz "dekoder" mejla to moze ci sie to przydac .
P.S. Sorka ze tak pozno, ale dopiero wczoraj na to trafilem ![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Klasa jest swietna, wlasnie o to mi chodzilo.
Dzieki ! ![]() Mam jednak jeszcze jedno pytanie z zakresu pregow (nie moge na tym etapie uzyc tej klasy): Chcial bym pobrac naglowki: from, to, cc, bcc, subject z listy naglowkow maila za pomoca jednego wyrazenia regualrnego. Jednak nie wiem jak je polaczyc :? Czyli jak polaczyc w jedno wyrazenie takie oto wyrazenia: Cytat $regHeaders = array( 'from' => '/^from: (.*)$/si', 'to' => '/^to: (.*)$/si', 'cc' => '/^cc: (.*)$/si', 'bcc' => '/^bcc: (.*)$/si', 'subject' => '/^subject: (.*)$/si' ); ? P.S. Nie chodzi o dekoder. Podpowiedz w mojej sygnaturce ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie przychodzi mi nic lepszego do glowy a na dodatek musze Cie nieco zmartwic, pomysla nie mam a na dodatek mam wrazenie ze te regulki, ktore wpisales w swoim poscie nei zadzialaja (przynajmniej nie zadzialaly na moim testowym zestawie naglowkow :/)
Sprawa jest niezwykle trudna - pokaze Ci co probowalem kombinowac, to moze akurat bedziesz mogl to jakos wykorzystac. Najpierw myslalem zeby porozbijac same naglowki preg_splitem i lapac tez to pattern ktory powodowal rozbicie
Niestety okazalo sie ze to nie chce dzialac tak jak myslalem, bo okazalo sie ze takie naglowki jak "reply-to", albo kazdy inny z "to" w nazwie zaburzal wyszukiwanie naglowka "to".. ...no to pozniej wymyslilem ze bede pobieral wybrane naglowki w ten sposob:
Idea ktora lezala u podstaw napisania tej regulki zakladala ze naglowek moze sie przelamac do nowej linii, ale nie bedzie przeciez lecial dalej niz nastepny naglowek, no i wszytko cacy.... minusy: - zatrzymuje sie na pierwszym napotkanym ciagu litery_: czyli np. "RE:" ktory przeciez jest bardzo czesto stosowany w tytulach - po drugie lapiac nazwe kolejnego naglowka, silnik wyrazen oznacza te czesc tekstu jako przetworzona i juz do niej nie wraca, z powodu czego co drugi naglowek jest poprawnie odczytywany. Niestety testowego zestawu naglowkow Ci tutaj nie moge wkleic, no ale jak sobie podejrzysz zrodlo wiadomosci spod outlooka expresa (nie tego ktory jest czescia ofisa, bo tam nie ma tej funkcji :/) to z mejla wyciagniesz co trzeba. Jak widac moje proby skonczyly sie porazka, ale zycze powodzenia ![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
a takie cos nie wystarczy?
![]()
-------------------- Brak czasu :/
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(FiDO @ 2005-04-12 15:35:37) a takie cos nie wystarczy? ![]() sam mi powiedz [edit] Fakt slicznie dziala ![]() -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
No wg mnie dziala na tych danych.. wylapuje spokojnie wieloliniowego Subject'a.
Edit: ![]() BTW.. mozna jeszcze to troche uscislic, bo ja przyjalem ze wszystkie wieloliniowe naglowki kolejne linie zaczynaja od tab'a, jak do tej pory nie spotkalem sie z innym przypadkiem, ale nie wiem jak to jest zdefiniowane w RFC. Mozna wiec tez robiac fuzje Twojego pomyslu z moim: Kod #^(From|To|CC|BCC|Subject):(.+)\n(?=\\w+:)#Umsi
-------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 10:23 |