2012-07-27 10 views
33

Właśnie zaktualizowałem OS X do Mountain Lion wczoraj, ale funkcja php mail() już nie działa.Poczta PHP() już nie działa po aktualizacji do OSX Mountain Lion

Przed aktualizacją funkcja PHP mail() działała poprawnie, poczta Apple działa poprawnie. Po aktualizacji, poczta Apple działa dobrze, ale funkcja PHP mail() NIE DZIAŁA.

Serwer: XAMPP 1.7.3

używam tego kodu, aby przetestować mail() funkcję:

if (mail($to, $object, $content, "From: ". $from)) 
{ 
    echo 'send '; 
} 
else 
{ 
    echo "not send"; 
} 

to pokazuje: not send

coś muszę zmienić? takie jak php.ini czy coś innego?

Z góry dziękuję.

+1

Sprawdź 'sendmail_path' w' php.ini' i upewnij się, że 'sendmail' zainstalowany w systemie, a ścieżka odpowiada PHP. Następnie sprawdź swój katalog syslog lub logs pod kątem błędów z serwera pocztowego. – drew010

Odpowiedz

79

W końcu znalazłem rozwiązanie. Po patrząc na error_log (/ Applications/XAMPP/xamppfiles/logs/error_log), wystąpił błąd: sendmail: śmiertelne: chdir/Library/Server/Mail/Dane/szpula: Nie ma takiego pliku lub katalogu

Wykonaj następujące czynności w terminalu:

sudo mkdir -p /Library/Server/Mail/Data/spool 
sudo /usr/sbin/postfix set-permissions 
sudo /usr/sbin/postfix start 

wówczas pHP mail() działa!

referencyjny: https://apple.stackexchange.com/questions/54051/sendmail-error-on-os-x-mountain-lion

+7

Mam pewne błędy w poleceniach terminalowych dotyczących postfiksu, ale Twoje rozwiązanie działało! – ariestav

+0

Naprawiono u mnie, chociaż dostałem również kilka dziwnych ostrzeżeń na terminalu. W końcu jednak zadziałało! –

+0

Świetne, dzięki! – Swader

3

Po utworzeniu folderu buforu jak opisano powyżej, skonfigurowałem postfix postępując zgodnie ze wskazówkami na temat tego artykułu OS X Hints

miałem również edytować ścieżkę php.ini sendmail mieć jakiś dodatkowy przełączniki, specjalnie

sendmail_path=/usr/sbin/sendmail -t -i 
+0

to też mi się udało, dzięki – gray