Uzyskiwanie dostępu do Gmaila przez IMAP z OAuth2 w C#

Artykuł ten koncentruje się na pracy z Gmail, powszechnie używaną usługą poczty elektronicznej, wykorzystując klienta IMAP jako część biblioteki .NET. Opisuje niezbędne kroki do uwierzytelnienia użytkowników za pomocą OAuth 2.0, umożliwiając bezpieczny dostęp do kont Gmail. Wyjaśnia również, jak uzyskać niezbędne poświadczenia z Google Cloud Console, pozyskiwać tokeny dostępu i łączyć się z Gmail przy użyciu C# i API .NET. Dzięki temu przewodnikowi zdobędziesz umiejętności zarządzania wiadomościami e-mail programowo, co pozwoli aplikacjom na interakcję z Gmail. Techniki te są przydatne do budowania klienta poczty elektronicznej lub automatyzacji zadań, co zwiększa wysiłki deweloperskie.

Biblioteka .NET do uzyskiwania dostępu do Gmaila przez IMAP

Aspose.Email dla .NET upraszcza proces uzyskiwania dostępu do Gmaila przez IMAP z uwierzytelnianiem OAuth 2.0, zapewniając potężne, gotowe do użycia klasy i metody do interakcji z serwerami IMAP Gmaila. Jest to biblioteka zaprojektowana do obsługi szerokiego zakresu zadań związanych z pocztą e-mail w aplikacjach .NET. Oferuje wsparcie dla popularnych protokołów pocztowych, w tym IMAP, POP3 i SMTP, co czyni ją niezbędnym narzędziem dla programistów pracujących nad funkcjonalnością poczty elektronicznej.

Dzięki Aspose.Email możesz łączyć się z kontami Gmail w sposób bezpieczny, pobierać wiadomości oraz zarządzać danymi skrzynki pocztowej, nie martwiąc się o złożoności implementacji protokołu. Ta biblioteka abstrahuje wiele szczegółów niskiego poziomu, umożliwiając programistom koncentrowanie się na pisaniu czystego, funkcjonalnego kodu do zarządzania pocztą e-mail, niezależnie od tego, czy jest to klient poczty, automatyzacja, czy usługi backendowe.

Aby wykorzystać moc biblioteki, wystarczy zainstalować ją za pomocą Menedżera pakietów NuGet i zintegrować ją z projektem:

  • Otwórz swój projekt w Visual Studio.
  • Przejdź do Narzędzia > Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania.
  • Wyszukaj Aspose.Email.
  • Wybierz pakiet i kliknij Zainstaluj.

Alternatywnie, możesz użyć Konsoli Menedżera pakietów i wpisać następujące polecenie:

Install-Package Aspose.Email

Możesz również pobrać najnowszą wersję API bezpośrednio ze strony Aspose.

Po zainstalowaniu biblioteki, zacznij kodować!

Uzyskaj identyfikator klienta i tajny klucz klienta dla OAuth w Google Cloud Console

Ponieważ Gmail nie obsługuje już bezpośredniego logowania i uwierzytelniania hasłem, musisz użyć OAuth 2.0 do połączenia. OAuth 2.0 zapewnia solidną ramę autoryzacyjną, umożliwiając aplikacjom bezpieczny dostęp do danych użytkowników bez ujawniania wrażliwych poświadczeń.

Poniższe kroki poprowadzą cię przez proces uzyskiwania identyfikatora klienta i tajnego klucza klienta z Google Cloud Console, szczególnie w celu połączenia się z skrzynką pocztową przez IMAP.

  1. Uzyskaj dostęp do Google Cloud Console

Aby rozpocząć, przejdź do Google Cloud Console i zaloguj się na swoje konto Google. Ta platforma pozwala zarządzać i konfigurować usługi Google dla swoich projektów.

  1. Utwórz nowy projekt
  • Kliknij na menu rozwijane projektów na górze strony.
  • Wybierz “Nowy projekt.”
  • Wprowadź opisową nazwę swojego projektu i wybierz konto rozliczeniowe, jeśli to konieczne.
  • Kliknij “Utwórz”, aby sfinalizować nowy projekt.
  1. Włącz Gmail API, aby uzyskać dostęp do danych
  • W lewym panelu nawigacyjnym kliknij na “API i usługi”, a następnie “Biblioteka.”
  • Wyszukaj “Gmail API.”
  • Kliknij na wpis API i naciśnij “Włącz.”
  1. Skonfiguruj ekran zgody OAuth
  • Przejdź do “API i usługi”, a następnie “Ekran zgody OAuth.”
  • Wybierz “Zewnętrzny” lub “Wewnętrzny”, w zależności od bazy użytkowników.
  • Uzupełnij niezbędne pola, takie jak nazwa aplikacji i adres e-mail wsparcia użytkowników.
  • Kliknij “Zapisz i kontynuuj”, aby przejść dalej.
  1. Utwórz poświadczenia

Poświadczenia są niezbędne, aby Twoja aplikacja mogła komunikować się bezpiecznie z usługami Google.

  • Przejdź do “API i usługi” i wybierz “Poświadczenia.”
  • Kliknij “+ UTWÓRZ POŚWIADCZENIA” i wybierz “Identifikatory klientów OAuth 2.0.”
  1. Skonfiguruj identyfikator klienta OAuth 2.0
  • Wybierz “Aplikacja desktopowa” jako typ aplikacji.
  • Nazwij swojego klienta OAuth 2.0.
  • Dodaj autoryzowane URI przekierowania, takie jak http://localhost do lokalnego testowania.
  • Kliknij “Utwórz”, aby wygenerować poświadczenia.
  1. Pobierz identyfikator klienta i tajny klucz klienta

Po utworzeniu poświadczeń zobaczysz okno dialogowe wyświetlające twój Identyfikator klienta i Tajny klucz klienta. Pobierz plik z poświadczeniami w formacie JSON, klikając przycisk Pobierz.

  1. Skonfiguruj zakresy
  • Wróć do “Ekran zgody OAuth.”
  • Kliknij “Dodaj lub usuń zakresy”, aby wybrać uprawnienie “https://mail.google.com/" do uzyskania dostępu do danych skrzynki pocztowej przez IMAP.

Teraz pomyślnie uzyskałeś identyfikator klienta i tajny klucz klienta dla OAuth w Google Cloud Console. Te poświadczenia pozwolą Ci uwierzytelnić użytkowników i bezpiecznie połączyć się z ich skrzynkami pocztowymi przez IMAP przy użyciu aplikacji klienta IMAP.

Uzyskaj token dostępu dla Gmail API

Tokeny dostępu są niezbędne do uwierzytelniania żądań do API, takich jak Gmail API. Ta sekcja wyjaśnia, jak uzyskać token dostępu. Przejdziemy przez przykład kodu, który demonstruje proces pozyskiwania tokena dostępu do interakcji z danymi Gmail.

Zanim zaczniesz, upewnij się, że masz:

  • Projekt Google Cloud z włączonym Gmail API.
  • Poświadczenia OAuth 2.0 (plik JSON) pobrane z Google Cloud Console.
  • Zainstalowaną bibliotekę Google.Apis.Auth w swoim projekcie C#. Możesz ją zainstalować za pomocą NuGet:
Install-Package Google.Apis.Auth

Aby uzyskać token programowo, podejmiemy następujące kroki:

  1. Zaimportuj niezbędną przestrzeń nazw Google.Apis.Auth.OAuth2, aby używać funkcji uwierzytelniania Google’a.
  2. Utwórz statyczną asynchroniczną metodę GetAccessToken, która przyjmuje jako argument ścieżkę do pliku JSON zawierającego poświadczenia OAuth 2.0.

Uzyskiwanie metody GetAccessToken będzie obejmować następujące kroki:

  1. Zdefiniuj wymagane zakresy dla Gmail API. W naszym przypadku prosimy o dostęp do konta Gmail użytkownika.
  2. Użyj metody GoogleClientSecrets.FromFile, aby załadować poświadczenia klienta OAuth 2.0 z określonego pliku JSON.
  3. Użyj metody GoogleWebAuthorizationBroker.AuthorizeAsync, aby rozpocząć proces autoryzacji. Metoda ta poprosi użytkownika o uwierzytelnienie i autoryzację dostępu.

Po pomyślnym uwierzytelnieniu zwracany jest token dostępu, co pozwala na dokonywanie autoryzowanych żądań do Gmail API.

Oto przykład kodu do pobierania tokena dostępu:

using Google.Apis.Auth.OAuth2;
static async Task<string> GetAccessToken(string pathToAccessParameters)
{
// Gmail API scope
string[] scopes = { "https://mail.google.com/" };
// Use the JSON file with OAuth 2.0 credentials
var clientSecrets = GoogleClientSecrets.FromFile(pathToAccessParameters).Secrets;
// Acquire tokens
var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
clientSecrets,
scopes,
"username (e.g. username@gmail.com)",
CancellationToken.None);
return credential.Token.AccessToken;
}

Pomyślnie zaimplementowałeś metodę uzyskiwania tokena dostępu dla Gmail API z użyciem OAuth 2.0 w C#. Ten token dostępu umożliwia Twojej aplikacji wykonywanie autoryzowanych operacji w imieniu użytkownika. Pamiętaj, aby bezpiecznie obsługiwać token dostępu i odświeżać go w miarę potrzeb, aby utrzymać dostęp użytkownika.

Połączenie z Gmailą przez IMAP

W tej sekcji poprowadzimy Cię przez proces łączenia się z Gmailą przy użyciu Aspose.Email dla .NET. Rozważymy kod niezbędny do nawiązania bezpiecznego połączenia i pobrania wiadomości e-mail z konta Gmail.

Zanim zaczniesz, upewnij się, że masz metodę do pozyskiwania tokena dostępu do uwierzytelnienia, jak opisano w poprzedniej sekcji.

Jako przykład stworzymy klienta IMAP z niezbędnymi parametrami i wylistujemy wiadomości z folderu “Skrzynka odbiorcza”:

  1. Wywołaj metodę GetAccessToken, przekazując ścieżkę do pliku poświadczeń OAuth 2.0. Metoda ta zwraca token dostępu potrzebny do uwierzytelnienia.

  2. Utwórz instancję ImapClient używając parametrów.

    Host: "imap.gmail.com" określa serwer IMAP dla Gmaila.

    Port: 993 to bezpieczny port dla IMAP przez SSL.

    Nazwa użytkownika: Twój adres e-mail Gmaila.

    Token dostępu: Token dostępu uzyskany z metody GetAccessToken.

    Użyj OAuth: Parametr true wskazuje, że używane jest OAuth do połączenia.

    Opcje zabezpieczeń: SecurityOptions.SSLAuto zapewnia automatyczną negocjację SSL.

  3. Wywołaj metodę SelectFolderAsync, aby określić folder skrzynki pocztowej do uzyskania dostępu - w naszym przypadku Skrzynkę odbiorczą.

  4. Wywołaj metodę ListMessages, aby uzyskać listę wiadomości e-mail z wybranego folderu. Wyświetlamy liczbę pobranych wiadomości i iterujemy przez każdą wiadomość, aby wydrukować linię tematu.

Oto kod C# do połączenia się z Gmailą przy użyciu IMAP:

using Aspose.Email.Clients;
using Aspose.Email.Clients.Base;
using Aspose.Email.Clients.Imap;
var accessToken =
await GetAccessToken(
"googleusercontent.com.json");
// Connect to Gmail IMAP with OAuth
using var client = new ImapClient("imap.gmail.com", 993, "dmitbox@gmail.com", accessToken, true, SecurityOptions.SSLAuto);
// Select the Inbox folder
await client.SelectFolderAsync(ImapFolderInfo.InBox);
// Retrieve messages
var messages = client.ListMessages();
Console.WriteLine($"Number of messages: {messages.Count}");
foreach (var message in messages)
{
Console.WriteLine(message.Subject);
}

Pomyślnie połączyłeś się z Gmailą przez IMAP przy użyciu C# i Aspose.Email .NET.

Zdecydowanie, metody ImapClient użyte w powyższym przykładzie to tylko niektóre. Aspose.Email obejmuje prawie wszystkie funkcjonalności protokołu IMAP po stronie klienta. Obejmuje to funkcje takie jak zarządzanie folderami, pobieranie wiadomości oraz obsługę załączników. Dodatkowo zapewnia wsparcie dla zaawansowanych operacji, takich jak wyszukiwanie i filtrowanie wiadomości.

Podsumowanie

W tym artykule zbadaliśmy techniki pracy z Gmailą za pośrednictwem protokołu IMAP przy użyciu C#. Omówiliśmy, jak uzyskać poświadczenia OAuth 2.0 z Google Cloud Console, pozyskiwać tokeny dostępu i bezpiecznie łączyć się z Gmailą, aby zarządzać wiadomościami e-mail.

Wykorzystując dostarczone przykłady kodu, możesz zintegrować funkcje Gmaila w swoich aplikacjach, co umożliwia wydajne pobieranie i zarządzanie pocztą e-mail.

Przykłady kodu są dostarczane przez zaawansowaną i solidną bibliotekę Aspose.Email dla .NET, która również oferuje szereg darmowych zasobów:

  • obszerna dokumentacja,
  • rozbudowana referencja API,
  • różnorodność darmowych narzędzi online i aplikacji do usprawnienia procesu deweloperskiego,
  • darmowe forum wsparcia dla pomocy i wskazówek od społeczności,
  • blog aby być na bieżąco z najnowszymi wskazówkami i samouczkami.

Te zasoby są nieocenione dla maksymalizacji potencjału biblioteki w Twoich projektach.

Zobacz także