Darmowe notyfikacje z Twojej aplikacji
W tym wpisie dowiesz się jak wykonać darmowe notyfikacje z Twojej aplikacji.
Długo szukałem jak zrobić proste notyfikacje email. Temat pojawiał się dość często ponieważ wiele razy miałem taką sytuację, że potrzebowałem wysłać wiadomość email z aplikacji do użytkownika. W swoich aplikacjach często korzystam z serwisu do logowania zdarzeń log4net – najczęściej wyjściem do logowania jest plik tekstowy, ale może to być także email – jest to o tyle wygodne, że możemy dostawać wiadomości diagnostyczne ze swoich aplikacji zawsze wtedy kiedy pojawi się w nich jakiś błąd i dzięki temu jesteśmy w stanie zareagować zanim jeszcze użytkownik wyśle nam zgłoszenie.
Sporo naszukałem się żeby znaleźć odpowiednie rozwiązanie – kilka razy podchodziłem do tematu i zawsze kończyło się na założeniu darmowej skrzynki email na gmail albo outlook, ale problem jest taki że ciężko jest wybrać odpowiednią nazwę dla tej skrzynki ponieważ nazwy typu “info” albo są już zarezerwowane albo są zastrzeżone. Dodatkowo dobrze by było wysyłać wiadomości ze skrzynki o odpowiedniej domenie – wtedy wygląda to fachowo.
Po długich poszukiwaniach znalazłem usługę, która doskonale spełnia moje potrzeby. Jest to rozwiązanie oparte o Microsoft Azure i SendGrid i jest całkowicie darmowe przy założeniu że nie będziemy wysyłać w miesiącu więcej niż 25000 maili. Trudno powiedzieć czy jest do dużo czy mało, ale na moje potrzeby na początek w zupełności wystarczy. Konto Microsoft Azure również można założyć bezpłatnie tutaj (z tego co kojarzę konieczne jest podpięcie karty kredytowej, ale żadne środki z niej dla wymienionych wyżej usług nie są pobierane).
Konfiguracja usługi powinna przebiegać następująco:
- Jeśli mamy już założone konto Azure to logujemy się do portalu azure i z lewego menu klikamy “+ Create resource”
- W polu wyszukiwania wpisujemy “SendGrid Email Delivery” i naciskamy Enter
- Następnie klikamy przycisk “Create” i musimy wypełnić wymagane pola:
- Nazwę – dowolna nazwa (musi być unikalna), która nie będzie nam potrzebna
- Hasło do usługi – hasło będzie nam potrzebne do wysyłania wiadomości email więc warto je zapamiętać, albo zapisać
- Wybór subskrypcji
- Wybór lub utworzenie Resource group
- Następnie wybieramy wersję usługi – jak widać poniżej jest opcja darmowa 🙂
- Musimy jeszcze podać informacje kontaktowe
i przejrzeć i zaakceptować warunki prawne
Jak wszystko jest poprawnie wypełnione to będziemy mogli kliknąć “Create” i nasza usługa zostanie utworzona.
- Teraz możemy sprawdzić nasze dane usługi i zarządzać nią – jest wiele opcji zarządzania, ale to temat na osobny wpis. Do wysyłania powiadomień niezbędne będą nam tylko dane serwera SMTP, nazwa użytkownika i hasło które można sprawdzić w ustawieniach:
- Teraz możemy przetestować działanie poczty za pomocą poniższego skryptu powershell zamieniając wartości z <> na odpowiednie dane:
$From = “<adres email nadawcy>”$To = “<adres email adresata>”$SMTPServer = “<adres serwera SMTP>”$SMTPPort = “587”$Username = “<nazwa użytkownika>”$Password = “<hasło>”$subject = “Test”$body = “This is a testmail using SendGrid Email Delivery”$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)$smtp.EnableSSL = $true$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)$smtp.Send($From, $To, $subject, $body)