publikacja: 29 maja 2009, autor: , komentarzy 69 http://wpninja.pl/artykuly/wysylanie-listow-przez-serwer-smtp/

Wysyłanie listów przez serwer SMTP

Wysyłanie listów przez serwer SMTP fot. yorkville

Zdarzają się sytuacje gdy WordPress za nic w świecie nie chce wysyłać maili. Przyczyną takiego stanu rzeczy może być niedziałająca poprawnie lub nawet całkowicie wyłączona ze względów bezpieczeństwa funkcja mail().

Alternatywnym rozwiązaniem jest wtedy skorzystanie z serwera poczty wychodzącej (SMTP).

Jakie maile wysyłane są przez WordPressa?

WordPress używa funkcji mail() do automatycznego wysyłania listów zawierających m.in.:

  • linki aktywacyjne dla nowo zarejestrowanych użytkowników,
  • linki aktywujące system odzyskiwania zapomnianych haseł,
  • powiadomienia o nowych komentarzach,
  • wypełnione formularze kontaktowe (np. poprzez wtyczkę Contact Form 7),
  • newslettery (np. poprzez wtyczkę Subscribe2),
  • oraz wiele innych…

Niewysyłające się maile mogą więc poważnie obniżyć funkcjonalność całej strony.

Serwer poczty wychodzącej (SMTP)

Alternatywnym dla funkcji mail() sposobem wysyłania listów jest korzystanie z serwera pocztowego SMTP.

Dzięki wtyczce WP Mail SMTP całą operację można w bezbolesny sposób przeprowadzić z poziomu panela administratora. Trzeba jednak wcześniej przygotować sobie następujące dane:

  • adres e-mail,
  • host i port serwera SMTP,
  • czy potrzebne jest szyfrowanie? jeśli tak to jakie? (SSL czy TLS),
  • czy potrzebna jest autoryzacja?
  • nazwa i hasło użytkownika.

Ogólnie rzecz biorąc są to te same dane konta pocztowego, które trzeba podać przy korzystaniu z programów pocztowych typu Mozilla Thunderbird, The Bat! czy Outlook Express.

Konfiguracja wtyczki WP Mail SMTP

Po aktywacji wtyczki należy przejść do zakładki „ustawienia” / „email” i wypełnić znajdujący się tam formularz. Poniżej załączam zrzut ekranowy z przykładowej konfiguracji (w tym konkretnym przypadku jest to Gmail z Google Apps):

przykladowa-konfiguracja-wtyczki-wp-mail-smtp

Przykładowa konfiguracja wtyczki WP Mail SMTP

Testowanie połączenia z serwerem SMTP

Po uzupełnieniu danych i zapisaniu ich przyciskiem „update” należy je przetestować:

wysylanie-testowego-maila-przy-uzyciu-wtyczki-wp-mail-smtp

Wysyłanie testowego maila przy użyciu wtyczki WP Mail SMTP

 

Po wysłaniu testowego maila otrzymamy podsumowanie całej operacji.

Jeśli przy wartości „The result was” otrzymamy „bool (false)” to niestety nasze ustawienia są niepoprawne – należy wtedy sprawdzić czy wszystkie dane wpisaliśmy prawidłowo a jeśli to nie pomoże to skontaktować się z administracją serwera w celu uzyskania dodatkowych informacji:

wp-mail-smtp-testowy-mail-nie-zostal-wyslany

Testowy mail nie został wysłany

Jeśli jednak otrzymamy „bool(true)” oznaczać to będzie, że poprawnie skonfigurowaliśmy konto i od tej pory listy będą serwowane nie przez funkcję mail ale przez serwer SMTP:

wp-mail-smtp-testowy-mail-zostal-wyslany

Testowy mail został poprawnie wysłany

W celu upewnienia się, że wszystko jest cacy można otworzyć skrzynkę pocztową:

wp-mail-smtp-testowy-mail-zostal-wyslany-potwierdzenie

Potwierdzenie przyjścia testowego maila

I na tym kończymy całą operację. Od tego momentu wszystkie listy będą wysyłane za pośrednictwem serwera pocztowego dzięku czemu nasza strona będzie znowu w 100% sprawna :-).

tagi: ,

Komentarze

  1. Czekaj Jakub 8 lat temu:

    Świetnie że pojawił się taki artykuł sam miałem problem z funkcją sendmail na serwerze i wykorzystałem tą właśnie wtyczkę… Szkoda tylko że tak długo musiałem szukać jakiejkolwiek informacji na ten temat. Ale wpis świetny.

    odpowiedz
  2. elbi 8 lat temu:

    Mam nadzieję, że problem z pocztą wordpressową – jakoś się objawia? A może należy co jakiś czas wysyłać do siebie emaile, aby to stwierdzić?

    odpowiedz
  3. marsjaninzmarsa 8 lat temu:

    @elbi: jak userzy zaczną się skarżyć, że im rejestracja nie działa, to właśnie to jest objaw, zresztą @Szymon dokładnie to już napisał… :)

    odpowiedz
  4. SpeX 8 lat temu:

    A ja mam podobne pytanie, jak dodać w WP by pod komentarzami było ” Powiadom mnie o nowym komentarzu do tego artykułu.”

    odpowiedz
  5. elbi 8 lat temu:

    @spex pozwolę sobie zaproponować wtyczkę subscribe-to-comments, którą używam i opisuje u siebie na stronie lub taki link http://wordpress.org/plugins/subscribe-to-comments/

    odpowiedz
  6. Szymon Skulimowski 8 lat temu:

    A ja mam podobne pytanie, jak dodać w WP by pod komentarzami było ” Powiadom mnie o nowym komentarzu do tego artykułu.”

    Napisałem o tym nawet artykuł swojego czasu:
    Powiadamianie czytelników o nowych komentarzach. :-)

    odpowiedz
  7. rysielec 8 lat temu:

    Dziękuję! :)

    odpowiedz
  8. Zacol 8 lat temu:

    Jak zwykle przydatny artykuł :)

    odpowiedz
  9. Jakub Milczarek 8 lat temu:

    Bardzo praktyczna wtyczka – na 100% będę jej używał. Mam serwer, na którym mailer pracuje tylko dla poczty wysłanej ze stron, raz na ileś setek wejść…

    odpowiedz
  10. Tomir 8 lat temu:

    Porządny poradnik. Dziękuję Szymonie. Będę polecał klientom potrzebującym tej funkcjonalności. Adres artykułu już dodałem sobie do Delicious.

    odpowiedz
  11. o90 7 lat temu:

    Takie pytanko mam z innej bajki. A tu na wpninja zacząlem przygode z WP to tu szukam pomocy najpierw :) Czego szukać żeby zrobić header ( chyba tak to sie zwie, to głowne photo na stronie ) zmienny w zaleznosci od kategorii. o musi byc jakis dodatek ? rozszerzenie ? czego szukac
    Żeby było :
    wchodzę na głowną – głowne tlo i heather
    wchodze na posty w zaleznosci od kategorii inne tło i header
    Boże jak ja nic nie wiem :)

    odpowiedz
  12. Jacek Krużycki 7 lat temu:

    @a90: polecam plugin HeadSpace2. Spróbuj z tym.

    odpowiedz
  13. dejavu24 7 lat temu:

    Witam
    A czy jest jakiś plugin który umożliwiałby wstawienie na innej stronie www wiadomości o ostatnich wpisach na blogu? Np tworzyłby jakiś plik .php z podanymi ostatnimi linkami, który mógłbym np zaincludować na inną stronę, szukałem czegoś takiego ale to tylko były rozwiązania a’la widget do wordpressa i tylko tam były wyświetlane te ostatnie wpisy, nic co można przenieść na zewnątrz wp :( a szkoda

    odpowiedz
  14. Jacek Krużycki 7 lat temu:

    @dejavu24: musisz szukać czytników (agregatorów) RSS do wstawienia na stronę www i w nich podać adres feeda z danego bloga. Jaki to będzie skrypt to zależy od tego na jakim skrypcie „stoi” strona www. Gotowców (również uniwersalnych) jest w sieci sporo. Poszukaj na php.pl i Google.

    odpowiedz
  15. dejavu24 7 lat temu:

    Oo właśnie o to mi chodziło, kompletnie nie przyszło mi to do głowy :> Znalazłem na necie taki skrypcik działa elegancko co można zobaczyć u mnie. Jakby ktoś potrzebował coś takiego to można go pobrać z tej stronki http://www.aarondunlap.com/index.php?content=rss_get , bardzo fajna rzecz :)
    Wielkie dzięki

    odpowiedz
  16. Jacek Krużycki 7 lat temu:

    @dejavu24: nie ma za co :) Zawsze możesz linka do mnie gdzieś wstawić jak będziesz opisywał ww skrypt ;)

    odpowiedz
  17. Szymon Skulimowski 7 lat temu:

    Prosiłbym jednak o pisanie komentarzy na temat artykułu :-). Pytania niezwiązane można przesyłać mailowo lub zamieszczać na polskim forum WordPressa.

    odpowiedz
  18. Jacek Krużycki 7 lat temu:

    @Szymon: spoko luz :) Ale zawsze to ciekawe tematy na następne wpisy – bo coś ucicha ostatnio ;P

    odpowiedz
  19. dejavu24 7 lat temu:

    To by było dziwne wysyłać pytania na maila.. bo i do kogo, trafiać na ślepo i szukać ludzi.. :> A tu jak widać mój szybki ‚myk’ się udał i rozwiązanie problemu nastąpiło ‚raz dwa’ a to się liczy w naszym krótkim życiu :)
    Forum mi niepotrzebne z Wp to wchodzę tylko tutaj po info :)

    odpowiedz
  20. o90 7 lat temu:

    dzikuje za porade. Pytania nie na temat bo
    walka ideologiczna trwa na różnych poziomach klasowych !
    ja obecnie walczę z oblaniem fotki tekstem.
    Temat emalii z WP jest prawdopodobnie pasjonujacy, ale nie dla mnie :)
    A temat którego szukam to odsztywnienie WP. Sztywne to WP, kanciaste i prostokatne. Żeby cos wyglądało zza tekstu, zmieniało się tło, jakiś owal, nieregularność.
    Aloha ! lece na surfing

    odpowiedz
  21. Szymon Skulimowski 7 lat temu:

    Komentarze nie na temat będą usuwane. Tfu, tfu..! :-)

    odpowiedz
  22. marsjaninzmarsa 7 lat temu:

    Z tym, że pytania zadane na maila nie są dostępne publicznie, a komentarze – i owszem, więc więcej osób może na nie trafić…

    odpowiedz
  23. Szymon Skulimowski 7 lat temu:

    Rozumiem, że jest takie zapotrzebowanie i jest to całkiem efektywny sposób na uzyskanie szybkiej (i najczęściej fachowej) porady.

    Stąd też pomysł na dedykowane forum dla bloga – ankietę znaleźć można w sidebarze na stronie głównej :-).

    odpowiedz
  24. Kamil Lubelski 7 lat temu:

    Oczywiście działa bez problemu. Nawet wtedy, gdy nie podałem SMTP Host.
    Dzięki :D

    odpowiedz
  25. Gosciu 7 lat temu:

    Dzieki, pomoglo ;)

    odpowiedz
  26. verdi 7 lat temu:

    Pożyteczny artykuł. Jednak w moim przepadku wszelkie powiadomienia nadal się nie wysyłają pomimo tego, że mail testowy z tej wtyczki doszedł bez problemu.

    odpowiedz
  27. Szymon Skulimowski 7 lat temu:

    Czy problem nie dochodzących maili nie dotyczy przypadkiem skrzynek na wp.pl?

    odpowiedz
  28. Bartusiak 7 lat temu:

    No masz racje, działa to sobie sprawnie;)

    odpowiedz
  29. Robert 7 lat temu:

    Świetny artykuł, dzięki niemu uruchomiłem pocztę na moim wordpressie.

    odpowiedz
  30. Robert 7 lat temu:

    Niestety zgadzam się z Verid – test przeszedł , ale powiadomienia dalej są pchane przez mail() …

    odpowiedz
  31. bartek 7 lat temu:

    Ten WP-Mail-SMTP to jest totalny syf! skonfigurowalem go poprawnie, email testowy doszedl, natomiast contact form 7 nie wysyla e-maili, ta samo tiny-contact-form rowniez. Z czym WP-Mail-SMTP wogole dziala?!?!?!

    odpowiedz
  32. Kamil Lubelski 7 lat temu:

    U mnie z Contact Form 7 idealnie działa, więc zamiast wyzywać od syfu, to najpierw sprawdź jeszcze raz wszystkie ustawienia.

    odpowiedz
  33. bartek 7 lat temu:

    Czytalem troche na ten temat tutaj:
    http://www.caspianit.co.uk/contact-form-7-wp-mail-smtp-problemsolved/
    Robilem wszystko jak trzeba. Jak to mozliwe ze mail tesotwy dochodzi a reszta nic. Nie moge wpasc na to gdzie moge miec blad.

    odpowiedz
  34. bartek 7 lat temu:

    Juz rozwiazlem problem! podziele sie informacja jak to zrobilem jezeli ktos mial podobnie.
    Otoz we wtyczce Contact Form 7 nalezalo w ustawieniach w ramce „E-mail” w rubryce „Od: ” zamiast „[your-name] ” dać np.: „[jakas nazwa jaka chcemy] „. A wiec ten e-mail jaki zostal wpisany podczas konfiguracji wtyczki WP Mail SMTP (rubryka From Email). :)

    odpowiedz
  35. Kamil Lubelski 7 lat temu:

    Ja mam od samego początku wpisane „[your-name] ” i także działa :)

    odpowiedz
  36. wnuk 7 lat temu:

    Wystarczy zachować kolejność, wpierw zainstalować i skonfigurować WP Mail SMTP następnie Contact Form 7. Jeżeli ktoś zrobił odwrotnie to ma prawo nie działać, wówczas wystarczy jedynie dezaktywować Contact Form 7 i usunąć (dezaktywacja to nie usunięcie), po czym na nowo zainstalować i aktywować.

    odpowiedz
  37. D. 7 lat temu:

    No dobrze, ja mam jeszcze inny problem z WP-Mail-SMTP. Nie mogę nic ustawić w wtyczce, bo przy próbie wejścia w ustaweinia pojawia się:

    Fatal error: Cannot redeclare wp_mail_plugin_action_links() (previously declared in /homez.13/banasik/www/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php:426) in /homez.13/banasik/www/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php on line 426

    odpowiedz
  38. sioge 6 lat temu:

    A czy w ustawieniach poczty też muszę coś pozmieniać. mam poczet na gmail ustawiłem wszystko tak jak to pokazałeś, i nic cały czas false.

    odpowiedz
  39. Szymon Skulimowski 6 lat temu:

    Jeśli komuś ta wtyczka nie działa (jak mi teraz) to polecam skorzystać z aleternatywy – Configure SMTP.

    odpowiedz
  40. bilety 6 lat temu:

    Możecie polecić jakąś wtyczkę obsługującą newslettera?

    odpowiedz
    1. Szymon Skulimowski 6 lat temu:

      Mogę polecić wtyczkę Newsletter. Jest też dostępna komercyjna wersja wtyczki, która jest nieco bardziej rozbudowana.

      odpowiedz
  41. lolo 6 lat temu:

    Dzięki , walczyłem z tym problemem z tydzień…. udało się:)

    odpowiedz
  42. Kamil 5 lat temu:

    Kurcze mam problem – testowy mail wychodzi pięknie. Niestety Subscribe2 już nie działa:/

    odpowiedz
  43. Daggerkra 5 lat temu:

    Wtyczka rozwiązuje problem bardzo częściowo…. Niestety wysyłane w ten sposób wiadomości mogą być adresowane tylko jako właściciel konta z którego są wysyłane.

    Jeśli w jakiejś wtyczce (np contac form 7) Chcemy wysyłać również wiadomość jako osoba, która wpisała e-mail w formularzu (w otrzymanym mailu możemy wtedy szybko i wygodnie odpowiedzieć) e-maile nie wyślą się wcale (WP Mail SMTP) lub zostaną zaadresowane jako konto podane w ustawieniach SMTP (Configure SMTP).

    Wysyłanie wiadomości do samej siebie (z ustawień SMTP) i dodawanie adresu nadawcy w np temacie wiadomości jest bardzo niewygodne i nieprofesjonalne… Pozostaje poprawnie skonfigurować postfixa na serwerze :D (na 8 stronach działa poprawnie, a na jednej – przeniesionej z innego serwera) dziad jeden wysyła mi wiadomości jako localhost itp…

    odpowiedz
    1. Paweł Knapek 3 lata temu:

      Jest to jak najbardziej poprawne i normalne.
      Od tego jest przecież nagłówek Reply-to.
      W CF7 dodajesz sobie dodatkowy nagłówek

      Reply-To: [your-email]

      -i odpowiedź będzie szła tam, gdzie należy.

      odpowiedz
  44. Kajoko 4 lata temu:

    E-mail test z wtyczki Configure SMTP przychodzi na skrzynkę, ale wysyłany e-mail z formularza kontaktowego na stronie WP już nie. Czy ktoś z was wie dlaczego i jest w stanie pomóc?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Jakiej wtyczki używasz w formularzu kontaktowym?

      odpowiedz
    2. Kajoko 4 lata temu:

      Wtyczka była zakupiona razem z motywem strona http://kuriermiastecki.pl/wordpress3/

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Może skrypt nie korzysta z wbudowanej funkcji WP (wp_mail)?

      odpowiedz
  45. Praktyk 4 lata temu:

    A co jeśli otrzymamy wartość true, a po wejściu na skrzynkę maila nie ma?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      A może zaplątał się gdzieś w spamie? Zauważyłem, że wtyczka opisana w artykule nie była aktualizowana już od roku więc możesz jeszcze wypróbować WP SMTP. Daj znać jak poszło.

      odpowiedz
  46. Robert 4 lata temu:

    Witam,
    mam problem z opisywaną wtyczką.
    Niby wyświetla
    The result was:
    bool(true)

    ale na końcu skryptu wyświetla komunikat

    SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport „ssl” – did you forget to enable it when you configured PHP? (1909572407)

    i mail na skrzynkę nie przychodzi.
    Jakie ustawienia trzeba jeszcze zmienić?

    odpowiedz
    1. Paweł Knapek 3 lata temu:

      Wyłączony ssl na serwerze, najprościej zagadać do admina hostingu.

      odpowiedz
  47. Ola 3 lata temu:

    A u mnie mail testowy wychodzi, natomiast w formularzu kontaktowym ciągle mam błąd „mail nie został wysłany”). Formularz mam z contact form 7. Co jeszcze mogę zrobić?

    odpowiedz
    1. Szymon Skulimowski 3 lata temu:

      Jest jeszcze inna wtyczka o podobnym działaniu – WP SMTP – próbowałaś może?

      odpowiedz
    2. Anonim 3 lata temu:

      Próbuję i mam tu już na mailu testowym – some errors occured. Sprawdziłam poprawność maila i hasło. Port też mam taki jak w sugerowanej konfiguracji.

      odpowiedz
    3. Szymon Skulimowski 3 lata temu:

      Próbujesz połączyć to ze swoim kontem pocztowym na gmail.com?

      Jeśli tak to proponowane przez autora ustawienia są w porządku tylko trzeba pamiętać żeby przy testowaniu wypełnić wszystkie pola formularza („To”, „Subject” i „Message”) – bez tego nadal będą pojawiały się wspomniane błędy.

      PS. Swoją drogą – ustawienia z artykułu powyżej (tj. port 465 i szyfrowanie SSL) też działają poprawnie.

      odpowiedz
  48. Jacek 3 lata temu:

    Nie pamiętam hasła do wordpressa i nie mogę się zalogować, aby cokolwiek opublikować na swojej stronie. Użyłem funkcji „nie pamiętasz hasła” podałem e-mail ale niestety nic nie przychodzi od wordpressa. Dokonywałem tej czynności kilkanaście razy ale wciąż nie przychodzi nic od wordpressa. Czytałem wyżej że coś może mam nie ustawione w wordpressie z emailem ale jak mam to ustawić skoro nie mogę się zalogować? Bo nie mam zwrotnego emaila od wordpressa po skorzystaniu z funkcji „nie pamiętasz hasła”. Proszę bardzo o pomoc

    odpowiedz
    1. elgo 3 lata temu:

      A pamiętasz hasło do bazy – tam można zmienić hasło.

      odpowiedz
    2. Jacek 3 lata temu:

      a jak wejść w bazę

      odpowiedz
    3. elgo 3 lata temu:

      Nie ma co się rozpisywać ale po wpisaniu w google „odzyskiwanie hasla w wordpress” dostaniesz wiele obrazkowych i nie tylko odpowiedzi ;)

      odpowiedz
    4. Paweł Knapek 3 lata temu:

      Hasło do bazy jest w pliku wp-config.php
      A co do hasła samego WP, to >> http://codex.wordpress.org/Resetting_Your_Password

      odpowiedz
  49. Renton 3 lata temu:

    Dzięki, w końcu udało się uruchomić w całości proces rejestracji – problemem był oczywiście brak wysyłki maila.

    odpowiedz
  50. Michał 3 lata temu:

    Dziękuje bardzo pożyteczny wpis. Dobrze że są jeszcze ludzie którzy pokażą inne rozwiązanie niz mail() :)

    odpowiedz
  51. Kamil 3 lata temu:

    Kolejny raz przy problemie google mnie tu odsyła i kolejny raz wszystko klarownie i przejrzyście wyjaśnione. Dzięki! ;)

    odpowiedz
  52. Adrian 2 lata temu:

    Artykuł widać nie pierwszej nowości, a jednak w najnowszym wp pomógł i wszystko działa, jak należy, dzięki ;)

    odpowiedz
  53. natsukiss 1 rok temu:

    Ja mam problem…
    Na localhoście wtyczka wysyła maila poprawnie, ale jak już mam strone na FTP to niestety nie chce wysyłać…. a dane są na 100% poprawne.

    Jak naprawić ten błąd???
    Proszę o pomoc i z góry dziękuję

    odpowiedz
  54. ajlin.pl 12 miesięcy temu:

    DZIĘKUJĘ!!! od miesięcy zmagałam się z tym problemem

    odpowiedz

Dodaj własny komentarz