Jak otrzymać e-mail i przetworzyć go w aplikacji internetowej
Skonfigurowałem e-mail id mojej aplikacji internetowej PHP. Użytkownicy będą wysyłać e-maile na ten identyfikator.
Chcę przetworzyć te e-maile w aplikacji. Mam to zrobić?
Z góry dzięki.
11 answers
Ostatnio pracowałem nad projektem, który wymagał przetwarzania wiadomości e-mail z Gmaila i aktualizacji bazy danych z pewnymi wartościami na podstawie zawartości wiadomości e-mail. Użyłem ezcMail (Teraz) Zeta Components biblioteka do łączenia się z serwerem pocztowym i analizowania wiadomości e-mail.
Przyjętą strategią było filtrowanie wszystkich interesujących wiadomości przychodzących etykietą "nieprzetworzona". Uruchom skrypt PHP za pomocą crontab co 15 minut. Skrypt połączy się z serwerem pocztowym i otwórz nieprzetworzony folder IMAP i przeanalizuj każdy e-mail. Po włożeniu interesujących wartości do bazy danych skrypt przenosi pliki do innego folderu IMAP "Proccessed".
Znalazłem również IMAP jest lepszy niż POP dla tego rodzaju przetwarzania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-30 16:26:37
Ostatnio chciałem być w stanie otrzymywać e-maile od razu w czymś, co robiłem, więc zrobiłem trochę badań (przyszedłem patrząc na to pytanie tutaj też faktycznie) i skończyło się znalezienie Google App Engine być bardzo pomocne. Posiada api, którego możesz używać do odbierania i przetwarzania wiadomości e-mail wysyłanych do [email protected]
. Wiem, że nie wydaje się to pomocne, ponieważ prawdopodobnie nie chcesz swojej aplikacji na silniku aplikacji i chcesz otrzymywać e-maile na yourdomain.tld, ale z małą konfiguracją można uzyskać to, co chcę.
Moja podstawowa konfiguracja wygląda tak:
- użytkownik wysyła wiadomość e-mail do user_id @ mydomain.tld (adres e-mail, który tak naprawdę nie istnieje)
- mydomain.tld ma adres e-mail, który przekazuje do [email protected] [7]}GAEapp (mała aplikacja na silniku aplikacji) odbiera wiadomość e-mail, przetwarza ją i wysyła żądanie post z odpowiednimi rzeczami do mydomain.tld
Więc w zasadzie można zrobić małą aplikację GAE, która działa jak przejść między chwycić e-maile. Nawet z przekierowaniem to będzie działać ok, e-mail będzie w porządku.
Również postanowiłem nauczyć się django i zrobiłem darmową aplikację o nazwie Emailization , która w zasadzie zrobi to za Ciebie. Tworzysz odbiorcę, takiego jak [email protected]
i podajesz adres URL, do którego chcesz pisać. Wszystko wysłane na ten adres zostanie wysłane do ciebie URL. Możesz zrobić catchall na swojej domenie, która jest przekazywana do tego odbiorcy wiadomości e-mail, a otrzymasz e-mail za pośrednictwem catchall zbyt!
Lub możesz zobaczyć mała aplikacja GAE zrobiłem, że możesz skonfigurować siebie, który robi to samo.
Mam nadzieję, że to komuś pomoże!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-17 04:46:24
Użyj procmaila, jeśli jest zainstalowany w Twoim systemie. Umieść te linie w a .plik procmailrc w katalogu domowym użytkownika, który otrzymuje wiadomość e-mail.
:0
| /path/to/your/script.php
Lub możesz również użyć a .plik forward zawierający
"|/path/to/your/script.php"
Procmail ma tę zaletę, że pozwala radzić sobie z bardziej skomplikowanym filtrowaniem, jeśli Twoja aplikacja kiedykolwiek tego wymaga.
Twój scenariusz.plik php odczyta nagłówki i treść wiadomości e-mail ze standardowego wejścia.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-19 19:26:30
Sprawdź fMailbox. Nie wymaga żadnych niestandardowych rozszerzeń (takich jak imap) i został przetestowany z różnymi serwerami, załącznikami, wiadomościami wieloczęściowymi, SSL i innymi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-06 16:03:36
Sugeruję użycie zend_mail komponentu Zend Framework.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-08 14:50:55
Jest świetna biblioteka: spróbuj tego: http://code.google.com/p/php-imap
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-22 08:54:27
Musisz zaimplementować klienta poczty elektronicznej w Php. To prawdopodobnie będzie Klient POP .
Ten kod odpytywałby serwer POP zawierający twoją wiadomość e-mail, pobrałby ją, a następnie mógłbyś ją przeanalizować w razie potrzeby.
Szybkie wyszukiwanie w google "Pop client php" ujawniło szeroki wachlarz różnych opcji. Trudno powiedzieć, czy istnieje naprawdę "the One True PHP Pop Library", w przeciwnym razie chciałbym to tutaj. Jeśli używasz wcześniej istniejącego frameworka, możesz sprawdzić, czy jego poziom obsługi POP, w przeciwnym razie sprawdź wyniki google powyżej i wybierz. A może po prostu najłatwiej (i najbardziej edukacyjnie :) ) wywalić własne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-08 14:45:53
Istnieje wiele hostowanych rozwiązań, które akceptują wiadomości e-mail dla Twojej domeny, a następnie publikują skrypt na twojej stronie. Większość z nich zajmie się analizowaniem wiadomości za Ciebie (oddzielanie załączników, "do" "OD" i innych adresów, itp.).
Po prostu tworzysz skrypt, który otrzymuje formularz POST i robi z nim wszystko, czego potrzebujesz.
Możesz również spojrzeć na Mandrill (przez MailChimp), SendGrid, i PostMarkApp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-27 18:37:13
Jest do tego świetny tutorial:
Http://www.evolt.org/incoming_mail_and_php
Który opisuje sposób przekazywania wiadomości e-mail bezpośrednio do skryptu, które twój skrypt odczytuje poprzez stdin (fopen, fread, itp.) Kod samouczka robi nawet podstawowe parsowanie nagłówka / ciała dla Ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 20:28:36
Hosted solutions as Travis Austin suggested work well.
Jeśli szukasz hostingu własnego, możesz spojrzeć na Mailin moduł pozwala odbierać e-maile, analizować je i publikować je na webhooku swojego choice.It sprawdza również DKIM i spf, oblicza wynik spamassassin i określa język wiadomości.
Nie wiem, czy będzie odpowiadał Twoim potrzebom, ponieważ jest napisany w node.js, ale im więcej masz opcji, tym lepiej. (Zastrzeżenie: Jestem opiekunem Mailin)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:22
Jeśli chcesz uniknąć dotarcia przez POP lub IMAP do innego serwera, aby wyświetlić wiadomość e-mail, możesz dodać "hook" do procesu odbierania wiadomości e-mail na pewnym skonfigurowanym serwerze SMTP (prawdopodobnie tym samym serwerze php). Następnie wystarczy mieć Adres Docelowy obsługiwany przez ten serwer.
Oto przykład z postfixem, ale podobne rzeczy są możliwe również z sendmailem.
http://www.adkap.com/autoresponder.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-08 16:51:15