2009-07-17 23 views
6

Chcę wysłać dane do adresu e-mail i zapisać je w bazie danych MySQL (PHP). Jaki jest najprostszy sposób to zrobić? (Żadna forma postu, nie zwijają itd., Po prostu e-mail)Poczta do bazy danych MySQL

+0

@all: Jestem bardzo zadowolony na uzyskanie odpowiedzi tak szybko. –

+0

Wszystkie twoje pomysły mają swój specjalny zakres. Będę je pamiętać, gdy mam bardzo duży problem. W moim specjalnym przypadku biorę pod uwagę rozwiązanie Dennisa, ponieważ pasuje najlepiej. Wielkie dzięki @all. –

+0

Głosowałem wszystkie odpowiedzi w górę, ponieważ wszystkie są dobre w swoim zakresie. –

Odpowiedz

4

Jeśli serwer nie posiada IMAP ale masz system poza który ma crona można napisać stronę, która sprawdza konta e-mail i wczytuje dane do MySQL następnie skonfigurować skryptu na maszyna, która ma crona do wget strony mysql raz na X minut, gdzie X to częstotliwość wczytywania danych.

Ewentualnie, jeśli wiadomo, że wiadomości e-mail wczytują się szybko, można ustawić małą tabelę polową w bazie danych za pomocą znacznika czasu. Za każdym razem, gdy uruchamia się skrypt PHP, sprawdza on sygnaturę czasową, a jeśli trwa ponad 5 minut, wywołuje skrypt ładujący pocztę przed załadowaniem strony internetowej.

+0

hahaha, to jest idea Hej Dennis, robisz mój dzień –

+0

+1 Właśnie edytowałem swoją odpowiedź, aby dodać pomysł sprawdzania e-maili na stronę –

+0

postrzegają to jako premię za swoją pracę; –

4

Jeśli można uzyskać dostęp do wiadomości e-mail z użyciem POP tylko have a process sprawdzania maila z POP functions i wysyłanie wszystkiego do bazy danych

Również można użyć PHP IMAP support

+0

Mam już dostęp i biorę twoje rozwiązanie na konto. Ale konto serwera nie ma możliwości crona. –

+0

Bez crona nie widzę innego sposobu, niż użycie innego serwera, który ma crona do wywoływania skryptu php lub niestandardowego serwera pocztowego, który wywoływałby skrypt. –

+0

Czy masz na myśli, że serwer nie ma możliwości crona, ponieważ znajduje się w usłudze hostingowej? –

3

Zakładając, że wiesz już, jak zapisać dane w mysql, będziesz potrzebować dostępu do serwera pocztowego, własnego, hosta lub możesz skorzystać z darmowego, takiego jak Gmail lub Hotmail.

Można wtedy użyć funkcji IMAP PHP (które mogą uzyskać dostęp również do POP), aby uzyskać dostęp do poczty. Artykuły, które mogą Ci w tym pomóc: PHP imap info i a tutorial on creating PHP webmail

+0

Drogi Nico, dzięki za alternatywę. –

5

Istnieje kilka sposobów.

  • użyć skryptu alias postfix, w zasadzie, postfix odbiera pocztę, a następnie uruchamia go przez skrypt swojego wyboru. Treść wiadomości pojawia się w STDIN - możesz zrobić to, co chcesz, z zawartością wiadomości.

  • Użyj serwera zwyczaj poczty jak apache james, który jest przeznaczony do przetwarzania poczty, i „coś z tym zrobić”

{dobry Znalazłem niedawno był w laboratoriach Google - http://freshmeat.net/projects/subethasmtp} - wyglądał naprawdę dobrze.

pls pamiętaj, że e-mail nie jest protokołem gwarantowanym, jeśli próbujesz komunikować się z aplikacjami, prawdopodobnie istnieją lepsze sposoby!

Nadzieja to pomaga., Ace

+0

Dla mojego rzeczywistego problemu nie widzę sposobu, aby go zaangażować. :-(Ale bardzo dziękuję za podpowiedź.Dla innych ustawień to zadziała .. –

+0

Jeśli używasz subetha jeden, napiszesz dwie klasy, niestandardową fabrykę wiadomości i niestandardową obsługę wiadomości.Kiedy serwer otrzymuje wiadomość, to tworzy jeden z obiektów obsługi, a effectiley przekazuje ci strumień danych obiektu wiadomości, a następnie używa MimeMessage i Session do dekodowania tego obiektu, który możesz zrobić, co chcesz, w twoim przypadku, wyodrębnij pola i umieść w bazie danych Mam przykład i pracuję w ciągu 1 godziny.Jest to bardzo dobrze przemyślana struktura – phatmanace

+0

Wygląda na to, że znalazłem fajny sposób, który jest bardzo interesujący dla społeczności. Byłoby miło, gdybyś go podzielił –

1

Jest poradnik Slicehost krok-po-kroku, który wykonuje maszynę opartą Unix, instaluje postfix na nim ustawia go używać MySQL i konfiguruje go przyjąć wirtualnych użytkowników i wysyłać/odbierać wiadomości e-mail z wielu domen.

Konfiguracja jest czysta, szybka i bezpieczna. Życie jest dobre, co?

http://articles.slicehost.com/email

+0

Wielkie dzięki za twoja rada, wezmę to pod uwagę –

1

Być może należy spojrzeć na www.dbmail.org

Powiązane problemy