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 :)

[sendmail]

; 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

krl

taki tan zwykły gość ;)

Może Ci się również spodoba

2 komentarze

  1. Norbert pisze:

    Witam!
    Niestety u mnie jest błąd… Proszę o pomoc: GG: 6633921.

  2. adam pisze:

    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

Masz coś do powiedzenia? Dawaj...