C# może dość łatwo wysyłać wiadomości e-mail za pomocą .NET Framework, zwłaszcza za pośrednictwem protokołu SMTP. Protokół SMTP jest powszechnym sposobem wysyłania wiadomości e-mail.
Ponieważ e-maile SMTP wymagają serwera SMTP do wysyłania, prawdopodobnie najłatwiej jest użyć serwera Google Gmail. W tym celu potrzebne jest konto Gmail, którego utworzenie jest proste i bezpłatne. Po założeniu konta Gmail wysyłanie wiadomości SMTP za pomocą C# jest dziecinnie proste. Sztuczka polega na użyciu przestrzeni nazw System.Net.Mail zamiast System.Web.Mail. Druga przestrzeń nazw została zastąpiona przez System.Net począwszy od .NET Framework 2.0.
Ale co zrobić, aby połączyć się z serwerem Google? Potrzebujesz kilku informacji. Pierwszą z nich jest to, że adres serwera SMTP Gmaila to smtp.gmail.com. Drugą rzeczą, którą musisz wiedzieć, jest to, że aplikacja C# musi łączyć się przez port 587. Skąd to wiemy? Informacje te są swobodnie udostępniane deweloperom przez Google. Inne serwery SMTP również zapewniają własny adres i port do połączenia.
Jest jednak jeszcze jedna rzecz, większość serwerów SMTP wymaga uwierzytelnienia do wysyłania wiadomości e-mail. Tutaj do gry wkracza konto Gmail. Korzystając z klasy NetworkCredential .NET, określ swoją nazwę użytkownika i hasło. Spowoduje to uwierzytelnienie połączenia z serwerem. Upewnij się tylko, że nazwa użytkownika zawiera @gmail.com.
Wszystko jest obsługiwane przez klasę SmtpClient. Klasa ta zawiera kilka całkiem potężnych funkcji, w tym dodawanie załączników i wysyłanie wiadomości e-mail w formacie HTML. E-maile HTML to e-maile napisane za pomocą kodu HTML i wyświetlane jako strony internetowe. Chociaż zależy to od klienta poczty e-mail, większość klientów może odczytywać wiadomości HTML bez problemu, umożliwiając aplikacji C# wysyłanie wiadomości e-mail z obrazami i sformatowanym tekstem. Klasa SmtpClient pozwala również programistom na dodawanie nagłówków, które mogą dostosować zachowanie wiadomości e-mail. Należy jednak pamiętać, że niektóre serwery SMTP, takie jak Google, zignorują niektóre nagłówki i po prostu wykorzystają informacje z konta użytkownika. Na przykład ustawienie pola From na coś innego zostanie zignorowane przez GMail, który automatycznie ustawi pole From na adres e-mail użytkownika.
Na koniec upewnij się, że SSL jest włączony w aplikacji C#. SSL to protokół szyfrowania i jest absolutnie wymagany, w przeciwnym razie serwer Gmaila nie zaakceptuje połączenia.
