Sendgrid ARM i wysyłka maila

Sendgrid ARM i wysyłka maila

Kiedy tworzymy pierwszą aplikację webową, chcemy dodać do niej jak najwięcej funkcjonalności. Bardzo często pierwszą z nich jest wysyłka maili. .Net implementuję bibliotekę, która pozwala za pomocą protokołu SMTP wysyłać maile z dowolnej prywatnej skrzynki np. Google czy też Outlook. Jest to bardzo dobre rozwiązanie na początek, gdy tak naprawdę maile wysyłamy tylko my, testując aplikację. Kiedy jednak zdecydujemy się użyć tego sposobu już w świecie produkcji, stajemy przed bardzo poważnym problemem. Google czy też inny klient poczty ma filtry anty-spamowe. Zatem kiedy postanowimy wysyłać znaczną ilość maili, Google automatycznie nas zablokuje, a nasz adres trafi na czarną listę. Aby tego uniknąć z pomocą przychodzi SendGrid.

Mailing w SendGrid

Jest to bowiem platforma służąca do masowego wysyłania maili. Korzystając z niej nie musimy się przejmować serwerami czy też statystykami. SendGrid to usługa SaaS, dzięki czemu operator dostarcza nam gotowe rozwiązanie, które my tylko używamy.

Konto możemy stworzyć używając portalu SendGrid, lecz jeżeli chcemy skorzystać z darmowej opcji, która na ten moment daje nam 25 tyś maili miesięcznie, musimy to zrobić poprzez Azure. Jako fan ARM polecam tę drogę 🙂 Aby stworzyć takie konto mamy kilka możliwości, np. można je zrobić bezpośrednio z mojego github-a lub klikając przycisk poniżej.

ikona deploy to Azure

Kiedy już stworzymy usługę, kolejnym krokiem będzie pobranie naszego prywatnego klucza, który uzyskamy bezpośrednio w portalu. Aby zalogować się do niego musimy znaleźć usługę w portalu, a następnie kliknąć manage.

ekran SendGrid Account

Kiedy już jesteśmy zalogowani w portalu, kolejnym krokiem będzie wygenerowanie klucza.

ekran API Keys

Kiedy mamy już wygenerowany klucz wystarczy napisać prostą funkcję, która wyśle za nas maila. Do celów testowych wystarczy stworzyć aplikację konsolową. Pamiętajmy zainstalować odpowiednie nugety!

using SendGrid;
using SendGrid.Helpers.Mail;


private async Task CreateMailAsync() { var apiKey = "TWÓJ KLUCZ"; var client = new SendGridClient(apiKey); var from = new EmailAddress("[email protected]", title); var to = new EmailAddress("TWOJ EMAIL"); var plainTextContent = plainText; var htmlContent = content; var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); await client.SendEmailAsync(msg); }

Jak można zauważyć, sama wysyłka jest bardzo prosta. Co ciekawe, adres email z którego wysyłamy maila może być dowolny. Nic nie stoi na przeszkodzie, aby wysłać maile z konta [email protected] To nie jest bug 🙂 a wada protokołu SMTP. Protokół ten jawnie wysyła tekst, przez co łatwo jest wpisać swój własny wymyślony email. Więcej informacji na ten temat na pewno znajdziecie w Internecie .

Sam SendGrid zapewnia nam również statystyki, dzięki którym możemy zobaczyć ile maili wysłaliśmy, czy nasze maile zostały doręczone oraz czy któreś z nich zostały potraktowane jako spam. Myślę, że jest to o wiele lepsza opcja niż wysyłanie maili z prywatnego konta Google 🙂

ekran statystyk SendGrid


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.