WAMPserver2 i sendmail – jak wysyłać maile
Jak wspomniałem w jednym z poprzednich postów, w pakiecie WAMPserver2 brakuje mi możliwości testowania skryptów wysyłających maile. Pokażę teraz jak w kilku prostych krokach dodać taką funkcjonalność do tego pakietu. Będziemy do tego potrzebowali kilka dodatkowych plików oraz jakieś konto pocztowe.
1. Pobieramy oba pliki zip z tej strony i rozpakowujemy ich zawartość do jednego folderu, np. sendmail. Plik sendmail.zip zawiera aplikację „udającą” unixowy sendmail. sendmail-SSL.zip zawiera dwie dodatkowe biblioteki dll do obsługi szyfrowanych połączeń wymaganych przez niektórych dostawców poczty.
2. Otwieramy folder sendmail i edytujemy plik sendmail.ini. Uzupełniamy niezbędne dane. Jak ustawić Twoje konto dowiesz się zapewne w dziale „Pomoc” swojej poczty. Poszukaj pozycji „Konfiguracja programów pocztowych” lub coś podobnego. Poniżej pokazuję konfigurację współpracującą z kontem pocztowym w serwisie tlen.pl.
[sendmail] (...) smtp_server=poczta.o2.pl ; smtp port (normally 25) smtp_port=587 ; SMTPS (SSL) support ; auto = use SSL for port 465, otherwise try to use TLS ; ssl = alway use SSL ; tls = always use TLS ; none = never try to use SSL smtp_ssl=auto (...)
default_domain=tlen.pl
(...) ; if your smtp server requires authentication, modify the following two lines auth_username=login_do_poczty auth_password=hasło_do_poczty
3. Teraz kopiujemy cały folder sendmail, najlepiej do katalogu z serwerem wamp. Ja umieściłem sendmail w
E:\wamp\bin\sendmail
Warto trzymać wszystko razem, łatwiej będzie potem ogarnąć.
4. Teraz edytujemy plik php.ini. Po uruchomieniu pakietu WAMPserver2 plik będzie dostępny z menu. Klikamy w ikonę w zasobniku systemowym, wybieramy PHP i klikamy na php.ini. Jeśli mamy zainstalowane kilka wersji PHP trzeby edytować php.ini każdej wersji osobno.
W php.ini odnajdujemy część odpowiedzialną za funkcję sendmail (mail function). Oto jak ustawiłem to u siebie:
[mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = localhost ; http://php.net/smtp-port ;smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = you@yourdomain ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = sendmail_path = "e:\wamp\bin\sendmail\sendmail.exe -t" ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log =
W pozycji „sendmail_path” trzeba oczywiście podać taką ścieżkę jaka odpowiada lokalizacji sendmail na Twoim komputerze. Nie zapomnij także o „zakomentowaniu” wcześniejszych pozycji: SMTP = localhost, smtp_port = 25 i sendmail_from = you@yourdomain .
5. Po zapisaniu zmian w php.ini restartujemy serwer. Od teraz powinniśmy mieć możliwość wysyłania poczty. Możemy sprawdzić czy nam się udało wszystko skonfigurować uruchamiając prosty skrypt php.
<?php mail("moj_login@tlen.pl","temat testowy","wiadomość testowa","From: moj_login@tlen.pl"); ?>
Po uruchomieniu powinniśmy na nasze konto otrzymać prostą wiadomość testową. Miłego :)
; you must change mail.mydomain.com to your smtp server,
; or to IIS’s „pickup” directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS’s pickup directory cause sendmail to
; run quicker, but you won’t get error messages back to the calling
; application.
smtp_server=poczta.o2.pl
; smtp port (normally 25)
smtp_port=587
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=auto
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn’t provided
; if you want to override the value in the registry, uncomment and modify
default_domain=tlen.pl
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
error_logfile=error.log
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
;debug_logfile=debug.log
; if your smtp server requires authentication, modify the following two lines
auth_username=reklamki
auth_password=az549f3
Witam!
Niestety u mnie jest błąd… Proszę o pomoc: GG: 6633921.
Mam prośbę – kod działa:
ale jak zrobić żeby w header wiadomości był inny adres mailowy ? męcze się już nad tym od 3 dni – błagam o pomoc