Nyílt forráskódú Ruby e-mail létrehozó és feldolgozó könyvtár
Ingyenes Ruby API, amely lehetővé teszi a Ruby alkalmazások számára, hogy IMAP-on keresztül hozzáférjenek és kezeljék a Gmail fiókokat. E-mailek írása, küldése, archiválása, áthelyezése és törlése Ruby könyvtárral.
Mi a Ruby-Gmail könyvtár?
Azokban az időkben, amikor az e-mail továbbra is kulcsfontosságú szerepet játszik a kommunikációs munkafolyamatokban, a szoftverfejlesztőknek gyakran programozott módon kell együttműködniük a Gmaillel. Akár jelentéseket húzunk le, automatizált értesítéseket küldünk, vagy a beérkezett üzeneteket figyeljük, a megfelelő eszközök órákat takaríthatnak meg. A Ruby-Gmail egy nyílt forráskódú Ruby gem, amely egyszerű, Ruby-szerű felületet biztosít a Gmailhez az IMAP protokollon keresztül. A fejlesztő, dcparker által létrehozott könyvtár elrejti a nyers IMAP parancsok bonyolultságát, és helyette olvasható, kifejező módszereket kínál a Gmail beérkezett üzeneteivel, e-mailekkel, címkékkel, mellékletekkel és még sok mással való munkához. Csak néhány Ruby sorral a szoftverfejlesztők létrehozhatnak és elküldhetnek több részből álló e-mail üzeneteket egyszerű szövegben és/vagy HTML-ben, beágyazott képekkel és mellékletekkel.
Ruby-Gmail egy rejtett gyöngyszem a Ruby fejlesztők számára, akik egy minimális, elegáns felületet szeretnének a Gmail feladatok automatizálásához. A könyvtár számos funkciót tartalmaz a Gmail e-mailekkel való munkához, például a Gmail hitelesítést, e-mailek olvasását, keresését vagy szűrését, üzenetek megírását és küldését, e-mailek eltávolítását vagy törlését, üzenetek archiválását, mellékletek elérését, e-mailek címkék szerinti szervezését és így tovább. A könyvtár aktív fejlesztése és nyílt forráskódú jellege azt jelenti, hogy folyamatosan javul és alkalmazkodik a Gmail API változásaihoz. A nagyszerű funkciók mellett vannak korlátozások is, például az OAuth2 még nem támogatott, és IMAP-re támaszkodik, ami nem biztos, hogy minden Gmail-specifikus funkciót elérhetővé tesz. Tökéletes választás szkriptfeladatokhoz vagy a Gmail könnyű Ruby alkalmazásokba való integrálásához.
Első lépések a Mail használatával
A Ruby-Gmail könyvtár legkönnyebb telepítési módja a RubyGems használata. Kérjük, használja a következő parancsot a egyszerű telepítéshez.
Ruby-Gmail telepítése a Rubygems-en keresztül
gem install gmailE‑mail hitelesítés Ruby alkalmazásokban
Az nyílt forráskódú Ruby-Gmail könyvtár több hitelesítési módszert támogat, beleértve az OAuth2-t és az egyszerű felhasználónév/jelszó párost. Lehetővé teszi az egyszerű bejelentkezést egy Gmail cím és jelszó vagy alkalmazás-specifikus jelszó (ajánlott a 2FA-val rendelkező fiókoknál) használatával. Alternatívaként, ha OAuth-t kell használni vagy a bejelentkezést a szkriptől kívül kezelni, a Ruby-Gmail blokk-alapú kapcsolatot támogat. Kérjük, vegye figyelembe, hogy biztonság miatt kerülje a jelszavak kódba írását; használjon környezeti változókat vagy titkoskezelést. Az alábbi kódrészletek mindkét módszert bemutatják az e-mail hitelesítések Ruby API-n keresztüli feldolgozásához.
Hogyan végezhetünk alapvető és OAuth2 e-mail hitelesítést Ruby alkalmazásokban?
require 'gmail'
# Basic authentication (less secure)
gmail = Gmail.connect(username, password)
# OAuth2 authentication (recommended)
gmail = Gmail.connect(:oauth2, username, access_token)
E‑mail keresése és szűrése Ruby API-n keresztül
A Ruby-Gmail könyvtár teljes funkcionalitást biztosít az e-mail üzenetek könnyű olvasásához és kereséséhez Ruby alkalmazásokon belül. A fejlesztők egyszerűen hozzáférhetnek a beérkezett üzenetekhez, olvasatlan üzenetekhez, vagy kereshetnek tárgy, feladó vagy dátum szerint. A könyvtár robusztus keresőfelületet kínál, amely tükrözi a Gmail saját keresőoperátorait. Az alábbi példa bemutatja, hogyan alkalmazhatnak a szoftverfejlesztők különféle módszereket az e-mail üzenetek keresésére Ruby alkalmazásokban.
Hogyan kereshetünk e-mail üzeneteket a Gmailben Ruby API-n keresztül?
# 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')
E‑mail összeállítása és küldése Ruby segítségével
Az nyílt forráskódú Ruby-Gmail könyvtár teljes körű támogatást nyújt az e-mail üzenetek létrehozásához és küldéséhez csupán néhány Ruby sorral. A könyvtár egyszerűvé teszi az e-mailek megírását és küldését, lehetővé teszi HTML tartalom, fájlok és képek mellékleteinek hozzáadását, tömeges e-mailek küldését, stílusok és formázás alkalmazását, stb. Az alábbi példa bemutatja, hogyan adhatnak a szoftverfejlesztők HTML tartalmat és mellékleteket egy e-mail üzenethez Ruby alkalmazásokban.
Hogyan adhatunk hozzá HTML tartalmat és mellékleteket egy e-mail üzenethez Ruby alkalmazásokban?
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
E‑mail archiválása, törlése és áthelyezése Ruby API-n keresztül
A Ruby-Gmail könyvtár rendkívül funkciógazdag, és zökkenőmentesen képes kezelni az e-mail életciklus műveleteket Ruby alkalmazásokon belül. A szoftverfejlesztők könnyedén kezelhetik az e-maileket áthelyezéssel, címkézéssel, olvasott/olvasatlan jelöléssel stb. Emellett egyszerűen megjelölhetik az e-maileket csillagozottként, olvasatlanként, vagy akár különböző mappákba mozgathatják őket. Az alábbi Ruby kódpélda bemutatja, hogyan lehet e-mailt megjelölni, címkéket hozzáadni és mappába mozgatni Ruby alkalmazásokban.
Hogyan jelöljük meg az e-mailt, adjunk hozzá címkéket és helyezzük át egy adott mappába Ruby könyvtár segítségével?
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')