Visual Studio oferuje bibliotekę, dzięki której stworzenie procedury wysyłającej wiadomości e-mail jest uproszczone do minimum. Wszystko co trzeba zrobić to ustawienia serwera SMTP, podania odpowiednich adresów e-mail, hasła no i oczywiście treści mail-a. Biblioteka, którą należy zaimportować to: System.Net.Mail. Poniżej przedstawiam listing procedury wysyłającej wiadomości na konto Gmail. Kod procedury należy tylko uzupełnić o swoje dane, czyli adres e-mail i hasło. Teraz wystarczy utworzyć nowy projekt VB dodać na formę komponent Button i we właściwościach Click wpisać adres poniższej procedury wraz z parametrami: nadawca mail-a, odbiorca mail-a, temat, treść wiadomości i opcjonalnie nazwa nadawcy. Należy też pamiętać, aby na początku projektu zaimportować bibliotekę, o której wspomniałem na początku czyli wpisać instrukcję: Imports System.Net.Mail
Listing procedury zawiera opis ustawień dla poczty Gmail oraz WP. Ustawienia dla WP są zawarte w komentarzach.
Private Sub wyslij_wiadomosc(ByVal nadawca_mail As String, _
ByVal odbiorca_mail As String, _
ByVal temat As String, _
ByVal tresc_wiadomosci As String, _
Optional ByVal nazwa_nadawcy As String = „”)
‚Ustawienie zmiennych lokalnych odpowiedzialnych za konfigurację serwera SMTP i samej wiadomości
Dim Klient_Smtp As New SmtpClient()
Dim wiadomosc As New MailMessage()
‚Na wypadek gdyby coś poszło nie tak kod zapisalem w bloku Try … End Try
Try
‚Czy użyć domyślnych parametrów uwierzytelniania – False, czyli nie
Klient_Smtp.UseDefaultCredentials = False
‚Najważniejsze parametry naszego konta czyli: adres e-mail i hasło
Klient_Smtp.Credentials = New Net.NetworkCredential(„login@gmail.com”, „hasło”)
‚W przypadku Wirtualnej Polski należy podać login i hasło
‚Klient_Smtp.Credentials = New Net.NetworkCredential(„login”, „hasło”)
‚Numer portu SMTP
Klient_Smtp.Port = 587
‚Szyfrowanie SSL – True, czyli tak
Klient_Smtp.EnableSsl = True
‚Nazwa serwera SMTP dla poczty Gmail
Klient_Smtp.Host = „smtp.gmail.com”
‚Nazwa serwera SMTP dla poczty WP.pl
‚Klient_Smtp.Host = „smtp.wp.pl”
‚Ustawienia parametrów wiadomości
‚Tworzymy nową wiadomość
wiadomosc = New MailMessage()
‚Właściwość: From, czyli adres e-mail nadawcy i opcjonalnie jego nazwa
wiadomosc.From = New MailAddress(nadawca_mail, nazwa_nadawcy, System.Text.Encoding.UTF8)
‚Właściwość: To, czyli adres e-mail, na który będzie wysłana wiadomość
wiadomosc.To.Add(odbiorca_mail)
‚Właściwość: Subject – temat wiadomości
wiadomosc.Subject = temat
‚Czy treść wiadomości będzie w kodzie HTML – False, czyli nie
wiadomosc.IsBodyHtml = False
‚Właściwość Body – treść naszej wiadomości
wiadomosc.Body = tresc_wiadomosci
‚Ostatni etap – wysłanie wiadomości
Klient_Smtp.Send(wiadomosc)
‚Jeżeli zakończy się powodzeniem wyświetl odpowiedni komunikat
MsgBox(„Wiadomość wysłana”)
Catch error_t As Exception
‚Brrrrr…. Wyświetl komunikat o błędzie, jeśli coś pójdzie nie tak
MsgBox(error_t.ToString)
End Try
End Sub
Jeżeli ktoś już próbował uruchomić program z powyższym kodem i wysłać wiadomość na pocztę Gmail to pewnie jest trochę zawiedziony. Przy próbie wysłania wiadomości prawdopodobnie pojawia się następujący komunikat: „…Serwer SMTP wymaga bezpiecznego połączenia…” Na szczęście jest sposób, aby obejść ten problem. Straciłem sporo czasu nim udało mi się znaleźć rozwiązanie. Problem leży po stronie poczty Gmail, która standardowo jest zabezpieczona przed aplikacjami używającymi mniej bezpiecznej metody logowania. Ustawienie te można zmienić, po wcześniejszym zalogowaniu się na swoje konto, korzystając z poniższego linku: zmień ustawienia
Klikając w link zostaniemy przeniesieni na stronę umożliwiającą włączenie dostępu do mniej bezpiecznych aplikacji. Po dokonaniu odpowiedniego wyboru odświeżamy stronę i od tej pory nie powinno być już żadnych problemów z wysyłaniem wiadomości z konta założonego na Gmail.
Tak jak wspominałem na wstępie cała procedura wysyłania jest bardzo prosta i sprowadza się do ustawienia kilku właściwości, jednak jest to najprostsze z możliwych rozwiązań. Aplikację można np. rozbudować o możliwość wysyłania załączników, gdzie dodatkowo może być wykorzystana metoda Drag and drop, czyli przeciągnij i upuść. Tego właśnie będzie dotyczył kolejny poradnik, na który już teraz zapraszam.