Próbuję już od 2 dni i po prostu nie mogę uzyskać najprostszej rzeczy do pracy.
Problem: Wysyłanie wiadomości e-mail z PHP na mój adres e-mail nie działa
Pracowałem wcześniej z systemami Windows i Sendmail (Sendmail był w pakiecie XAMPP) i wszystko było w porządku. Pakiet XAMPP (1.7.7) dla Linuksa nie ma jednak zintegrowanego Sendmaila. Więc po trochę googlowania dowiedziałem się, że Postfix lepiej pasuje do środowiska LAMPP.
Co próbowałem do tej pory:
Zainstalowałem Postfix i chciałem go skonfigurować tak, aby korzystał z serwera smtp mojego prywatnego dostawcy poczty e-mail (tak jak w Windowsie). Więc skonfigurowałem mój plik php.ini w następujący sposób:
[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25
; For Win32 only.
;sendmail_from = [email protected]
sendmail_path = /etc/postfix
mail.add_x_header = On
Zauważ, że skomentowałem materiał „Tylko Win32”. Plik /etc/postfix/main.cf wygląda następująco:
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
myhostname = ubuntu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical
mydestination = ubuntu, localhost.localdomain, localhost
relayhost = mail.gmx.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
/ etc / aliases pozostaje niezmieniony:
# Required aliases
postmaster: root
MAILER-DAEMON: postmaster
# Common aliases
abuse: postmaster
spam: postmaster
/ etc / postfix / sasl_password :
my.providers.smtp my_login:my_password
/ etc / postfic / sender_canonical:
postmaster [email protected]
Co się dzieje:
Więc kiedy to zrobię
> sudo /etc/init.d/postfix start
wszystko wydaje się działać dobrze, a /var/log/mail.log mówi: „ubuntu postfix / master [9720]: demon uruchomiony - wersja 2.8.5, konfiguracja / etc / postfix”
Ale kiedy uruchamiam skrypt PHP (który działał dobrze w systemach Windows i Sendmail), po prostu działa i nic się nie dzieje, nawet błąd nie jest rejestrowany.
Co tak naprawdę chcę osiągnąć:
Pracuję lokalnie na stronie e-commerce. Działa dobrze na dedykowanym serwerze WWW, ale chcę, aby działał lokalnie z oczywistych powodów. W niektórych przypadkach wysyła wiadomości e-mail, a ja chcę tylko móc otrzymywać je za pomocą Thunderbirda lub w jakikolwiek inny sposób. Czy używasz tutaj overkill Postfix ? Nie muszę otrzymywać wiadomości e-mail - chcę tylko, aby wysłane wiadomości były jakoś widoczne. Nie mogłem znaleźć żadnych pomocnych samouczków krok po kroku dla tego problemu (ani dotyczących Senmaila, ani Postfixa - ale, szczerze mówiąc, jestem nowy w Linuksie).
sendmail_path = "/usr/sbin/sendmail -t -i"
Aby wysłać pocztę z hosta lokalnego (WAMP, XAMP lub LAMP), możesz użyć pakietu PHPMailer
Będzie to taka sama instrukcja jak w pliku readme ..
WAMP (Windows):
Najpierw musisz edytować plik „php.ini”. Aby znaleźć ten plik, wyświetl phpinfo, używając następującego kodu z serwera WAMP. Utwórz jeden plik php [setting.php] wewnątrz C: / wamp / www / i dodaj następującą zawartość do tego pliku.
Wpisz localhost / setting.php w przeglądarce. Tam wyszukaj „Załadowany plik konfiguracyjny”, który będzie ścieżką do twojego php.ini .
W pliku php.ini usuń; (średnik) podany dla `extension = php_openssl.dll. Ustawienia serwera zostały zakończone ...
LAMPA (Linux):
W przypadku Linuksa nie ma potrzeby edytowania pliku php.ini, jak wyjaśniłem w punkcie WAMP.
Jeszcze jedna zmiana to projekt lub folder główny dokumentu jest inny.
źródło
Aby wysłać wiadomość e-mail (z pakietem sendmail) za pośrednictwem Gmaila z hosta lokalnego, sprawdź PHP + Ubuntu Wyślij wiadomość e-mail za pomocą formularza Gmaila localhost jest możliwa inna odpowiedź.
źródło