1. Produkty
  2.   E-mail
  3.   Ruby
  4.   Ruby-Gmail
 
  

Otwarto‑źródłowa biblioteka Ruby do tworzenia i przetwarzania e‑maili

Darmowe API Ruby, które pozwala aplikacjom Ruby na dostęp i manipulację kontami Gmail za pomocą IMAP. Twórz, wysyłaj, archiwizuj, przenoś i usuwaj wiadomości e‑mail za pomocą biblioteki Ruby.

Czym jest biblioteka Ruby-Gmail?

W erze, w której e‑mail nadal odgrywa kluczową rolę w przepływach komunikacji, programiści często muszą programowo współpracować z Gmail. Niezależnie od tego, czy chodzi o pobieranie raportów, wysyłanie automatycznych powiadomień czy monitorowanie skrzynek odbiorczych, posiadanie odpowiednich narzędzi może zaoszczędzić godziny pracy. Ruby-Gmail to otwarto‑źródłowy gem Ruby, który zapewnia prosty, charakterystyczny dla Ruby interfejs do Gmaila za pośrednictwem protokołu IMAP. Stworzony przez programistę dcparker, biblioteka ukrywa złożoność pracy z surowymi poleceniami IMAP i zamiast tego oferuje czytelne, ekspresyjne metody do pracy ze skrzynkami odbiorczymi Gmaila, e‑mailami, etykietami, załącznikami i nie tylko. Dzięki zaledwie kilku liniom kodu Ruby, programiści mogą tworzyć i wysyłać wieloczęściowe wiadomości e‑mail w formacie tekstowym i/lub HTML, z osadzonymi obrazami oraz załącznikami.

Ruby-Gmail to ukryty klejnot dla Rubyistów, którzy chcą minimalnego, eleganckiego interfejsu do automatyzacji zadań w Gmailu. Biblioteka zawiera różne funkcje umożliwiające pracę z wiadomościami Gmail, takie jak uwierzytelnianie w Gmailu, odczytywanie, wyszukiwanie lub filtrowanie e‑maili, tworzenie i wysyłanie wiadomości, usuwanie lub kasowanie e‑maili, archiwizowanie wiadomości, dostęp do załączników, organizowanie e‑maili przy użyciu etykiet i tak dalej. Aktywny rozwój biblioteki oraz jej otwarto‑źródłowy charakter oznaczają, że jest ona stale udoskonalana i dostosowywana do zmian w API Gmaila. Oprócz wielu wspaniałych funkcji istnieją także pewne ograniczenia, takie jak brak wsparcia dla OAuth2 oraz zależność od IMAP, co może nie udostępniać wszystkich specyficznych funkcji Gmaila. To doskonałe rozwiązanie do zadań skryptowych lub integracji Gmaila w lekkich aplikacjach Ruby.

Previous Next

Rozpoczęcie pracy z Mail

Najłatwiejszy sposób instalacji biblioteki Ruby-Gmail to RubyGems. Proszę użyć poniższego polecenia, aby szybko zainstalować.

Zainstaluj Ruby-Gmail za pomocą Rubygems

gem install gmail

Uwierzytelnianie e-maili w aplikacjach Ruby

Biblioteka open source Ruby-Gmail obsługuje wiele metod uwierzytelniania, w tym OAuth2 oraz zwykłą nazwę użytkownika/hasło. Umożliwia prosty login przy użyciu adresu Gmail i hasła lub hasła specyficznego dla aplikacji (zalecane dla kont z 2FA). Alternatywnie, jeśli potrzebujesz użyć OAuth lub obsłużyć logowanie poza skryptem, Ruby-Gmail wspiera połączenie oparte na blokach. Należy pamiętać, że ze względów bezpieczeństwa należy unikać twardego kodowania haseł; używaj zmiennych środowiskowych lub zarządzania sekretami. Poniższe przykłady kodu demonstrują obie metody obsługi uwierzytelniania e‑mail przy użyciu API Ruby.

Jak wykonać podstawowe i OAuth2 uwierzytelnianie e‑mail w aplikacjach Ruby?

require 'gmail'

# Basic authentication (less secure)
gmail = Gmail.connect(username, password)

# OAuth2 authentication (recommended)
gmail = Gmail.connect(:oauth2, username, access_token)

Wyszukiwanie i filtrowanie e-maili za pomocą API Ruby

Biblioteka Ruby-Gmail zapewnia pełną funkcjonalność umożliwiającą łatwe odczytywanie i wyszukiwanie wiadomości e‑mail w aplikacjach Ruby. Programiści mogą z łatwością uzyskać dostęp do skrzynki odbiorczej, nieprzeczytanych wiadomości lub wyszukiwać według tematu, nadawcy lub daty. Biblioteka oferuje solidny interfejs wyszukiwania, który odzwierciedla własne operatory wyszukiwania Gmaila. Poniższy przykład demonstruje, jak programiści mogą zastosować różne metody wyszukiwania wiadomości e‑mail w aplikacjach Ruby.

Jak wyszukiwać wiadomości e‑mail w Gmailu za pomocą API Ruby?

# Search for unread emails from a specific sender
emails = gmail.inbox.emails(:unread, from: 'notifications@example.com')

# Search by subject
emails = gmail.inbox.emails(subject: 'Your monthly report')

# Complex searches
emails = gmail.inbox.emails(after: Date.parse('2023-01-01'), 
                           before: Date.parse('2023-01-31'),
                           has: 'attachment')

Tworzenie i wysyłanie e-maili za pomocą Ruby

Biblioteka open source Ruby-Gmail zapewnia pełne wsparcie przy tworzeniu i wysyłaniu wiadomości e-mail przy użyciu zaledwie kilku linii kodu Ruby. Biblioteka ułatwia komponowanie i wysyłanie e-maili, umożliwiając dodawanie treści HTML, załączników w postaci plików i obrazów, wysyłanie masowych e-maili, stosowanie stylów i formatowania itp. Poniższy przykład pokazuje, jak programiści mogą dodać treść HTML i załączniki do wiadomości e-mail w aplikacjach Ruby.

Jak dodać treść HTML i załączniki do wiadomości e‑mail w aplikacjach Ruby?

gmail.deliver do
  to "recipient@example.com"
  subject "Hello from Ruby-Gmail"
  text_part do
    body "This is a test email sent using Ruby-Gmail."
  end
end

# add HTML content and attachments
gmail.deliver do
  to "recipient@example.com"
  subject "Invoice Attached"
  text_part do
    body "Please see the attached invoice."
  end
  add_file "/path/to/invoice.pdf"
end

Archiwizowanie, usuwanie i przenoszenie e-maili za pomocą API Ruby

Biblioteka Ruby-Gmail jest bardzo bogata w funkcje i może płynnie obsługiwać operacje związane z cyklem życia e-maili w aplikacjach Ruby. Programiści mogą łatwo zarządzać e-mailami, przenosząc je, oznaczając etykietami, oznaczając jako przeczytane/nieprzeczytane itp. Mogą również łatwo oznaczyć e-maile jako wyróżnione, nieprzeczytane lub przenieść je do różnych folderów. Poniższy przykład kodu Ruby demonstruje, jak oznaczyć e-mail, dodać etykiety i przenieść go do folderu w aplikacjach Ruby.

Jak oznaczyć e‑mail, dodać etykiety i przenieść do określonego folderu za pomocą biblioteki Ruby?

email = gmail.inbox.emails.first

# Mark as read/unread
email.read!
email.unread!

# Add/remove labels
email.label('Important')
email.remove_label('Important')

# Move to folder
email.move_to('Archive')
 Polski