funkcja mail(), problem pod Ubuntu, rozwiazanie z sSMTP

3.31.2010 | Inne

Ostatnio przeniosłem się całkowicie na Ubuntu. doszedłem do wniosku ze męczenie się pod Windowsem w trakcie pracy z Symfony nie ma większego sensu. Oczywiście i pod linuxem zdarzają się dziwne krzaczki ;). Wczoraj odkryłem, że przy świeżej instalacji serwera Apache2 i PHP5 +MySQL, upraszczając LAMP nie działa mi funkcja mail(). Dla mnie było to zaskoczeniem, ponieważ pracując pod Windowsem na XAMPP’ie nigdy nie miałem takich problemów.

Cóż okazało się, że nie mam zainstalowanego serwera od poczty i oczywiście tu zaczęły się prawdziwe schody. Nie chciałem konfigurować całego serwera od poczty, bo takiego nie potrzebuję, a i czasu też było mi szkoda na czytanie dokumentacji. Sprawdziłem kilka rozwiązań niestety, wszystkie w domyślnym ustawieniu nie chciały współpracować z php.

Rozwiązaniem okazał się sSMTP, który jest prostym MTA (agentem przesyłania poczty). W skrócie, zainstalowałem sSMTP, skonfigurowałem go z moim kontem na Gmailu i moglem się cieszyć z działającej funkcji mail(). Dla potrzeb developerskich jest to wystarczające.

Instalacja pakietu:

apt-get install ssmtp


Edytujesz plik konfiguracyjny:

sudo nano /etc/ssmtp/ssmtp.conf


i konfigurujesz konto mailowe na Gmailu (lub dowolne inne):


root= twój_login@gmail.com
AuthUser= twój_login@gmail.com
AuthPass= hasło
AuthMethod= LOGIN
UseTLS= YES
UseSTARTTLS= YES
mailhub= smtp.gmail.com:587

Ostatnia rzecz o której należy pamiętać aby funkcja mail() dzialała z sSMTP to ta mała zmiana w konfiguracji php.ini

sudo nano /etc/php5/apache2/php.ini


w linii gdzie jest sendmail_path wpisz:

sendmail_path = /usr/sbin/ssmtp -t


na sam koniec aby sSMTP działał poprawnie zrestartuj serwer Apache2

sudo /etc/init.d/apache2 restart

Mam nadzieje, że ten wpis nie jednej osobie oszczędzi czasu na szukaniu rozwiązania z niedziałająca funkcją mail() przy świeżej instalacji Linux’a.


Odpowiedzi:

RafalP
9.09.2010

dobre :)
tez miałem problem z funkcją mail()

sprawdzę niebawem

pozdrawiam

Komentarze