Potrzebuję przetestować funkcję, która używa poczty PHP()
Jak mogę to zrobić bez wgrywania skryptu na serwer i testowania go online?
Co więcej, rozwijam się bez żadnego połączenia z Internetem.
Jestem na Mac OSX z systemem localhost z XAMPP.Przetestuj funkcję poczty PHP z localhost
Odpowiedz
Skonfiguruj serwer POP3 w lokalnym komputerze. Wiele dostępnych za darmo. i wysyłaj wiadomości e-mail w swojej lokalnej domenie za pomocą sendmaila.
Domyślnie nie jest wymagane ustawienie ścieżki sendmail w systemie Linux. przynajmniej nigdy tego nie potrzebowałem. wystarczy użyć funkcji mail() i hit maile w lokalnej domenie
To byłby kumpel serwera SMTP pop3, który faktycznie otrzyma e-maile, które nie wyślą e-maili. – Prix
LOL Ya Ale gdzie by sendmail wysłał maile ?????????? on nie ma połączenia z Internetem. Dobra ?????? Oto powód, dla którego serwer POP3 potrzebuje do uruchomienia testu lokalnego. >> Nie mówimy o serwerze SMTP. jego sendmail –
ma dostęp do maszyny tak samo jak z serwerem pocztowym, który może zweryfikować bez konieczności przechodzenia przez połączenie POP3. – Prix
Hmm. Nie próbowałem tego, ale w php.ini można ustawić "sendmail_path" ... więc teoretycznie można napisać własny skrypt powłoki, który po prostu zapisałby dane wejściowe do plików tekstowych, i zmienić plik php.ini, aby go użyć? Następnie po prostu uruchom testy i sprawdź pliki tekstowe!
Nie musisz instalować MTA na swoim komputerze, aby przetestować funkcję PHP mail()
. W systemach opartych na Uniksie (Linux, * BSD, OS X itd.) Możesz ustawić sendmail_path
na coś podobnego do tee mail.out > /dev/null
. Spowoduje to umieszczenie wiadomości e-mail (w tym nagłówków) w pliku o nazwie mail.out
.
Oto przykład jak to działa:
[email protected]:~$ cat | php -d sendmail_path='tee mail.out > /dev/null'
<?php
mail('[email protected]', 'the subject', 'the body');
?>
[email protected]:~$ cat mail.out
To: [email protected]
Subject: the subject
X-PHP-Originating-Script: 1000:-
the body
Można ustawić sendmail_path
w pliku php.ini
. Jeśli chcesz dodawać e-maile do pliku zamiast nadpisywać za każdym razem, możesz użyć tee -a
zamiast tylko tee
.
Ładne i proste rozwiązanie do testowania:
http://blogs.bigfish.tv/adam/2009/12/03/setup-a-testing-mail-server-using-php-on-mac-os-x/
Updated Link: https://github.com/ifunk/smtp-catcher
po prostu ustawić to na moim komputerze. bardzo przydatne - dzięki! –
Dowolna wersja nie-macowa tego? – AlxVallejo
Na końcu strony znajduje się niewielka sekcja systemu Windows. Na innych systemach uniksowych myślę, że można go rozwiązać podobnie jak w przypadku Maca. – biziclop
Aby przetestować wysyłanie e-maili z apache wykonaj następujące czynności
utworzyć folder do przechowywania wiadomości e-mail.
/home/username/Documents/TestEmails
Daj pozwolenie na apache. Z folderu Dokumenty, uruchom
sudo chgrp -R www-data TestEmails
zmodyfikować plik php.ini, kopalnia znajduje się w
/etc/php5/apache2/php.ini
ustawiony sendmail_path
sendmail_path ='cat > /home/username/Documents/TestEmails/mail.txt'
Restart apace2
sudo service apache2 restart
Co się stanie, jeśli używam oprogramowania serwera MAMP do programowania na localhost? – Nathan
Najlepszą odpowiedzią, która zadziałała dla mnie, jest ta poniżej (http://stackoverflow.com/a/3176517/1130803), ponieważ używa 'tee' zamiast' cat', co daje błąd 'Invalid argument' w systemie OSX. Jeśli korzystasz z MAMP, to myślę, że ta sama rada dotyczy, zmieniając tylko ścieżkę do miejsca, w którym znajduje się twoje php.ini. –
To działa dla mnie, ale tylko ze skryptów CLI; ale nie z usługi sieciowej. Czy jest coś jeszcze, co muszę zrobić, aby zrestartować Apache? – orlybg
Can” po prostu uruchamiasz swój skrypt z localhost? –