{"id":60,"date":"2015-11-18T16:29:29","date_gmt":"2015-11-18T16:29:29","guid":{"rendered":"http:\/\/www.smtp-server.net\/?p=60"},"modified":"2015-05-04T19:45:01","modified_gmt":"2015-05-04T19:45:01","slug":"serwer-smtp-google-c-wysylanie-wiadomosci-smtp","status":"publish","type":"post","link":"https:\/\/www.smtp-server.net\/pl\/serwer-smtp-google-c-wysylanie-wiadomosci-smtp\/","title":{"rendered":"Google SMTP Server - C# - Wysy\u0142anie wiadomo\u015bci e-mail SMTP"},"content":{"rendered":"<div style=\"float:left\"><iframe loading=\"lazy\" title=\"SQL Server DBA Tutorial 132 - Jak skonfigurowa\u0107 DBMail w SQL Server\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/DYMBNOE9EQs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p>C# mo\u017ce do\u015b\u0107 \u0142atwo wysy\u0142a\u0107 wiadomo\u015bci e-mail za pomoc\u0105 .NET Framework, zw\u0142aszcza za po\u015brednictwem protoko\u0142u SMTP. Protok\u00f3\u0142 SMTP jest powszechnym sposobem wysy\u0142ania wiadomo\u015bci e-mail.<\/p>\n<p><!--more--><\/p>\n<p>Poniewa\u017c e-maile SMTP wymagaj\u0105 serwera SMTP do wysy\u0142ania, prawdopodobnie naj\u0142atwiej jest u\u017cy\u0107 serwera Google Gmail. W tym celu potrzebne jest konto Gmail, kt\u00f3rego utworzenie jest proste i bezp\u0142atne. Po za\u0142o\u017ceniu konta Gmail wysy\u0142anie wiadomo\u015bci SMTP za pomoc\u0105 C# jest dziecinnie proste. Sztuczka polega na u\u017cyciu przestrzeni nazw System.Net.Mail zamiast System.Web.Mail. Druga przestrze\u0144 nazw zosta\u0142a zast\u0105piona przez System.Net pocz\u0105wszy od .NET Framework 2.0.<\/p>\n<p>Ale co zrobi\u0107, aby po\u0142\u0105czy\u0107 si\u0119 z serwerem Google? Potrzebujesz kilku informacji. Pierwsz\u0105 z nich jest to, \u017ce adres serwera SMTP Gmaila to smtp.gmail.com. Drug\u0105 rzecz\u0105, kt\u00f3r\u0105 musisz wiedzie\u0107, jest to, \u017ce aplikacja C# musi \u0142\u0105czy\u0107 si\u0119 przez port 587. Sk\u0105d to wiemy? Informacje te s\u0105 swobodnie udost\u0119pniane deweloperom przez Google. Inne serwery SMTP r\u00f3wnie\u017c zapewniaj\u0105 w\u0142asny adres i port do po\u0142\u0105czenia.<\/p>\n<p>Jest jednak jeszcze jedna rzecz, wi\u0119kszo\u015b\u0107 serwer\u00f3w SMTP wymaga uwierzytelnienia do wysy\u0142ania wiadomo\u015bci e-mail. Tutaj do gry wkracza konto Gmail. Korzystaj\u0105c z klasy NetworkCredential .NET, okre\u015bl swoj\u0105 nazw\u0119 u\u017cytkownika i has\u0142o. Spowoduje to uwierzytelnienie po\u0142\u0105czenia z serwerem. Upewnij si\u0119 tylko, \u017ce nazwa u\u017cytkownika zawiera @gmail.com.<\/p>\n<p>Wszystko jest obs\u0142ugiwane przez klas\u0119 SmtpClient. Klasa ta zawiera kilka ca\u0142kiem pot\u0119\u017cnych funkcji, w tym dodawanie za\u0142\u0105cznik\u00f3w i wysy\u0142anie wiadomo\u015bci e-mail w formacie HTML. E-maile HTML to e-maile napisane za pomoc\u0105 kodu HTML i wy\u015bwietlane jako strony internetowe. Chocia\u017c zale\u017cy to od klienta poczty e-mail, wi\u0119kszo\u015b\u0107 klient\u00f3w mo\u017ce odczytywa\u0107 wiadomo\u015bci HTML bez problemu, umo\u017cliwiaj\u0105c aplikacji C# wysy\u0142anie wiadomo\u015bci e-mail z obrazami i sformatowanym tekstem. Klasa SmtpClient pozwala r\u00f3wnie\u017c programistom na dodawanie nag\u0142\u00f3wk\u00f3w, kt\u00f3re mog\u0105 dostosowa\u0107 zachowanie wiadomo\u015bci e-mail. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce niekt\u00f3re serwery SMTP, takie jak Google, zignoruj\u0105 niekt\u00f3re nag\u0142\u00f3wki i po prostu wykorzystaj\u0105 informacje z konta u\u017cytkownika. Na przyk\u0142ad ustawienie pola From na co\u015b innego zostanie zignorowane przez GMail, kt\u00f3ry automatycznie ustawi pole From na adres e-mail u\u017cytkownika.<\/p>\n<p>Na koniec upewnij si\u0119, \u017ce SSL jest w\u0142\u0105czony w aplikacji C#. SSL to protok\u00f3\u0142 szyfrowania i jest absolutnie wymagany, w przeciwnym razie serwer Gmaila nie zaakceptuje po\u0142\u0105czenia.<\/p>","protected":false},"excerpt":{"rendered":"<p>C# mo\u017ce do\u015b\u0107 \u0142atwo wysy\u0142a\u0107 wiadomo\u015bci e-mail za pomoc\u0105 .NET Framework, zw\u0142aszcza za po\u015brednictwem protoko\u0142u SMTP. Protok\u00f3\u0142 SMTP jest powszechnym sposobem wysy\u0142ania wiadomo\u015bci e-mail.<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-60","post","type-post","status-publish","format-standard","hentry","category-smtp-servers"],"_links":{"self":[{"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":1,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"predecessor-version":[{"id":61,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/posts\/60\/revisions\/61"}],"wp:attachment":[{"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smtp-server.net\/pl\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}