{"id":28158,"date":"2021-05-21T15:10:00","date_gmt":"2021-05-21T12:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28158"},"modified":"2021-10-18T03:43:17","modified_gmt":"2021-10-18T00:43:17","slug":"wyslij-e-mail-za-pomoca-serwera-smtp-gmaila-ze-skryptu-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/wyslij-e-mail-za-pomoca-serwera-smtp-gmaila-ze-skryptu-php\/","title":{"rendered":"Wy\u015blij e-mail za pomoc\u0105 serwera SMTP Gmaila ze skryptu PHP"},"content":{"rendered":"<p>E-mail odgrywa wa\u017cn\u0105 rol\u0119 na stronie internetowej. Ka\u017cda strona internetowa zazwyczaj musi wysy\u0142a\u0107 e-maile do u\u017cytkownik\u00f3w. Te e-maile mog\u0105 by\u0107 wysy\u0142ane ze strony kontaktowej, biuletynu, formularza rejestracyjnego itp.<\/p>\n<p>PHP udost\u0119pnia <code>mail()<\/code>funkcj\u0119, kt\u00f3ra s\u0142u\u017cy do wysy\u0142ania wiadomo\u015bci e-mail. Ale istniej\u0105 ograniczenia podczas korzystania z <code>mail()<\/code>metody. Nie mo\u017cesz wysy\u0142a\u0107 wiadomo\u015bci e-mail z lokalnego serwera programistycznego. Inn\u0105 wad\u0105 jest to, \u017ce istnieje du\u017ce prawdopodobie\u0144stwo, \u017ce Tw\u00f3j e-mail stanie si\u0119 spamem.<\/p>\n<p>W wi\u0119kszo\u015bci przypadk\u00f3w <code>mail()<\/code>metoda nawet nie wysy\u0142a e-maila. Mo\u017ce to by\u0107 spowodowane nieprawid\u0142ow\u0105 konfiguracj\u0105 serwera lub czym\u015b innym.<\/p>\n<p>Aby wyj\u015b\u0107 z tych problem\u00f3w lub ogranicze\u0144, mo\u017cna u\u017cy\u0107 serwera SMTP do wysy\u0142ania e-maili.<\/p>\n<p>W tym artykule dowiemy si\u0119, jak u\u017cywa\u0107 PHPMailera i serwera SMTP Gmail do wysy\u0142ania e-maili.<\/p>\n<h3>Instalacja<\/h3>\n<p>Najpierw musisz zainstalowa\u0107 bibliotek\u0119 <a href=\"https:\/\/github.com\/PHPMailer\/PHPMailer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMailer<\/a> w swoim projekcie. Zalecanym sposobem instalacji biblioteki jest <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">u\u017cycie Composera<\/a>.<\/p>\n<p>Otw\u00f3rz wiersz polecenia w katalogu g\u0142\u00f3wnym projektu i uruchom poni\u017csze polecenie.<\/p>\n<pre><code>composer require phpmailer\/phpmailer<\/code><\/pre>\n<p>Poniewa\u017c u\u017cywamy Gmail SMTP, musisz zmieni\u0107 niekt\u00f3re ustawienia na swoim koncie Google. Zaloguj si\u0119 na swoje konto Google i kliknij Moje konto. Gdy znajdziesz si\u0119 na stronie Moje konto, kliknij Bezpiecze\u0144stwo. Przewi\u0144 w d\u00f3\u0142, a znajdziesz ustawienia \u201eMniej bezpieczny dost\u0119p do aplikacji&quot;. Ustaw go na ON.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20527-6082002147f32.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20527-6082002147f32.png\" alt=\"Wy\u015blij e-mail za pomoc\u0105 serwera SMTP Gmaila ze skryptu PHP\" ><\/a><\/p>\n<p>Nast\u0119pnie musimy napisa\u0107 kod, kt\u00f3ry wy\u015ble \u200b\u200bwiadomo\u015b\u0107 e-mail za pomoc\u0105 biblioteki PHPMailer i serwera SMTP Gmaila.<\/p>\n<h3>Skrypt PHP do wysy\u0142ania wiadomo\u015bci e-mail za pomoc\u0105 serwera SMTP Gmaila<\/h3>\n<p>Otw\u00f3rz plik PHP, w kt\u00f3rym musisz napisa\u0107 kod do wiadomo\u015bci e-mail. Na przyk\u0142ad zak\u0142adam, \u017ce masz <code>sendemail.php<\/code>plik w katalogu g\u0142\u00f3wnym.<\/p>\n<p><strong>sendemail.php<\/strong><\/p>\n<pre><code>&lt;?php\n\/\/Import PHPMailer classes into the global namespace\nuse PHPMailerPHPMailerPHPMailer;\nuse PHPMailerPHPMailerException;\n\u00a0\nrequire_once 'vendor\/autoload.php';\n\u00a0\n$mail = new PHPMailer(true);\n?&gt;<\/code><\/pre>\n<p>W powy\u017cszym kodzie umie\u015bci\u0142em \u015brodowisko biblioteki PHPMailer w pliku PHP.<\/p>\n<p>Nast\u0119pnie, aby wysy\u0142a\u0107 e-maile za pomoc\u0105 PHPMailera, u\u017cytkownik musi przekaza\u0107 adres serwera SMTP Gmaila, port SMTP dla Gmaila i uwierzytelnianie SMTP (kt\u00f3re jest niczym innym jak nazw\u0105 u\u017cytkownika i has\u0142em do konta Google).<\/p>\n<pre><code>$mail-&gt;isSMTP();\n$mail-&gt;Host = 'smtp.googlemail.com';\u00a0 \/\/gmail SMTP server\n$mail-&gt;SMTPAuth = true;\n$mail-&gt;Username = 'GMAIL_USERNAME';\u00a0\u00a0 \/\/username\n$mail-&gt;Password = 'GMAIL_PASSWORD';\u00a0\u00a0 \/\/password\n$mail-&gt;SMTPSecure = 'ssl';\n$mail-&gt;Port = 465;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/SMTP port<\/code><\/pre>\n<p>Ot\u00f3\u017c \u200b\u200bto! Sko\u0144czy\u0142e\u015b z konfiguracj\u0105. Teraz mo\u017cesz ju\u017c wys\u0142a\u0107 wiadomo\u015b\u0107 e-mail do u\u017cytkownika.<\/p>\n<pre><code>$mail-&gt;setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');\n$mail-&gt;addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');\n\u00a0\n$mail-&gt;isHTML(true);\n\u00a0\n$mail-&gt;Subject = 'Email subject';\n$mail-&gt;Body\u00a0\u00a0\u00a0 = '&lt;b&gt;Email Body&lt;\/b&gt;';\n\u00a0\n$mail-&gt;send();\necho 'Message has been sent';<\/code><\/pre>\n<p>Zast\u0105p symbole zast\u0119pcze rzeczywistymi warto\u015bciami. Uruchom ten plik w przegl\u0105darce, a wiadomo\u015b\u0107 e-mail powinna zosta\u0107 wys\u0142ana na adres e-mail odbiorcy.<\/p>\n<h3>Wysy\u0142anie za\u0142\u0105cznik\u00f3w w wiadomo\u015bci e-mail<\/h3>\n<p>Korzystaj\u0105c z biblioteki PHPMailer mo\u017cna wys\u0142a\u0107 jeden lub wiele za\u0142\u0105cznik\u00f3w w wiadomo\u015bci e-mail. Wszystko, co musisz zrobi\u0107, to przekaza\u0107 \u015bcie\u017ck\u0119 katalogu swoich za\u0142\u0105cznik\u00f3w do metody <code>addAttachment<\/code>w nast\u0119puj\u0105cy spos\u00f3b.<\/p>\n<pre><code>$mail-&gt;addAttachment(__DIR__. '\/attachment1.png');\n$mail-&gt;addAttachment(__DIR__. '\/attachment2.jpg');<\/code><\/pre>\n<p>Nasz ostateczny kod jest nast\u0119puj\u0105cy.<\/p>\n<p><strong>sendemail.php<\/strong><\/p>\n<pre><code>&lt;?php\nuse PHPMailerPHPMailerPHPMailer;\nuse PHPMailerPHPMailerException;\n\u00a0\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"constants.php\";\n\u00a0\n$mail = new PHPMailer(true);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isSMTP();\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Host = 'smtp.googlemail.com';\u00a0 \/\/gmail SMTP server\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPAuth = true;\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Username = GMAIL_USERNAME;\u00a0\u00a0 \/\/username\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Password = GMAIL_PASSWORD;\u00a0\u00a0 \/\/password\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPSecure = 'ssl';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Port = 465;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/smtp port\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAttachment(__DIR__. '\/attachment1.png');\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAttachment(__DIR__. '\/attachment2.png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isHTML(true);\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Subject = 'Email Subject';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Body\u00a0\u00a0\u00a0 = '&lt;b&gt;Email Body&lt;\/b&gt;';\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;send();\n\u00a0\u00a0\u00a0\u00a0echo 'Message has been sent';\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo 'Message could not be sent. Mailer Error: '. $mail-&gt;ErrorInfo;\n}\n?&gt;<\/code><\/pre>\n<p>Mam nadziej\u0119, \u017ce rozumiesz, jak wysy\u0142a\u0107 wiadomo\u015bci e-mail za pomoc\u0105 serwera SMTP Gmaila ze skryptu PHP. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w komentarzu poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/wysylanie-wiadomosci-e-mail-przez-serwer-smtp-gmaila-w-laravel\/\" title=\"Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel\">Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/wysylanie-wiadomosci-e-mail-przy-uzyciu-serwera-smtp-gmaila-i-biblioteki-swift-mailer\/\" title=\"Wy\u015blij e-mail za pomoc\u0105 serwera SMTP Gmaila i biblioteki Swift Mailer\">Wy\u015blij e-mail za pomoc\u0105 serwera SMTP Gmaila i biblioteki Swift Mailer<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/wyslij-e-mail-za-pomoca-mailjet-alternatywa-dla-serwera-smtp-gmail-w-php\/\" title=\"Wy\u015blij e-mail za pomoc\u0105 Mailjet w PHP\">Wy\u015blij e-mail za pomoc\u0105 Mailjet w PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym samouczku wyja\u015bniamy, jak wys\u0142a\u0107 wiadomo\u015b\u0107 e-mail za pomoc\u0105 serwera SMTP Gmaila ze skryptu PHP. Korzystaj\u0105c z SMTP, mo\u017cesz nawet wysy\u0142a\u0107 e-maile z lokalnego serwera.<\/p>\n","protected":false},"author":1,"featured_media":21631,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-28158","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28158"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21631"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}