1. Produk
  2.   Surel
  3.   Ruby
  4.   Ruby-Gmail
 
  

Perpustakaan Penciptaan & Pemrosesan Email Ruby Open Source

API Ruby Gratis yang memungkinkan Aplikasi Ruby mengakses dan memanipulasi akun Gmail melalui IMAP. Menyusun, Mengirim, Mengarsipkan, Memindahkan & Menghapus Pesan Email melalui Perpustakaan Ruby.

Apa itu Perpustakaan Ruby-Gmail?

Di era di mana email masih memainkan peran penting dalam alur kerja komunikasi, pengembang perangkat lunak sering perlu berinteraksi dengan Gmail secara programatis. Baik itu mengambil laporan, mengirim notifikasi otomatis, atau memantau kotak masuk, memiliki alat yang tepat dapat menghemat berjam-jam kerja. Ruby-Gmail adalah gem Ruby sumber terbuka yang menyediakan antarmuka sederhana ala Ruby untuk Gmail melalui protokol IMAP. Dibuat oleh pengembang dcparker, perpustakaan ini menyembunyikan kompleksitas penanganan perintah IMAP mentah dan sebaliknya memberikan metode yang mudah dibaca dan ekspresif untuk bekerja dengan kotak masuk Gmail, email, label, lampiran, dan lainnya. Dengan hanya beberapa baris kode Ruby, pengembang perangkat lunak dapat membuat dan mengirim pesan email multipart dalam teks biasa dan/atau HTML, dengan gambar inline serta lampiran.

Ruby-Gmail adalah permata tersembunyi bagi para Rubyist yang menginginkan antarmuka minimalis dan elegan untuk mengotomatiskan tugas Gmail. Perpustakaan ini mencakup berbagai fitur untuk bekerja dengan email Gmail, seperti otentikasi ke Gmail, membaca, mencari, atau memfilter email, menyusun dan mengirim pesan, menghapus atau menghilangkan email, mengarsipkan pesan, mengakses lampiran email, mengatur email menggunakan label, dan sebagainya. Pengembangan aktif dan sifat open source perpustakaan ini berarti terus berkembang dan menyesuaikan diri dengan perubahan API Gmail. Selain beberapa fitur hebat, ada juga beberapa keterbatasan seperti OAuth2 belum didukung dan bergantung pada IMAP, yang mungkin tidak menampilkan semua fitur khusus Gmail. Ini cocok sekali untuk tugas scripting atau mengintegrasikan Gmail ke dalam aplikasi Ruby yang ringan.

Previous Next

Memulai dengan Mail

Cara termudah untuk menginstal perpustakaan Ruby-Gmail adalah melalui RubyGems. Silakan gunakan perintah berikut untuk instalasi yang mudah.

Instal Ruby-Gmail via Rubygems

gem install gmail

Otentikasi Email dalam Aplikasi Ruby

Perpustakaan Ruby-Gmail sumber terbuka mendukung berbagai metode otentikasi termasuk OAuth2 dan username/password biasa. Ini memungkinkan login sederhana menggunakan alamat Gmail dan kata sandi atau kata sandi khusus aplikasi (disarankan untuk akun dengan 2FA). Alternatifnya, jika Anda perlu menggunakan OAuth atau menangani login di luar skrip, Ruby-Gmail mendukung koneksi berbasis blok. Harap dicatat bahwa demi keamanan, hindari menuliskan kata sandi secara langsung; gunakan variabel lingkungan atau manajemen rahasia. Contoh kode berikut menunjukkan kedua metode untuk menangani proses otentikasi email melalui API Ruby.

Cara Melakukan Otentikasi Email Dasar & OAuth2 di dalam Aplikasi Ruby?

require 'gmail'

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

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

Cari dan Filter Email melalui API Ruby

Perpustakaan Ruby-Gmail telah menyediakan fungsionalitas lengkap untuk dengan mudah membaca dan mencari pesan email di dalam aplikasi Ruby. Pengembang dapat mengakses kotak masuk, pesan yang belum dibaca, atau mencari berdasarkan subjek, pengirim, atau tanggal dengan mudah. Perpustakaan ini menyediakan antarmuka pencarian yang kuat yang meniru operator pencarian Gmail sendiri. Contoh berikut menunjukkan bagaimana pengembang perangkat lunak dapat menerapkan berbagai metode untuk mencari pesan email di dalam aplikasi Ruby.

Cara Mencari Pesan Email di Gmail melalui 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')

Komposisi & Pengiriman Email melalui Ruby

Perpustakaan Ruby-Gmail sumber terbuka telah menyediakan dukungan lengkap untuk membuat dan mengirim pesan email hanya dengan beberapa baris kode Ruby. Perpustakaan ini membuat penyusunan dan pengiriman email menjadi sederhana, memungkinkan penambahan konten HTML, lampiran file dan gambar, pengiriman email massal, penerapan gaya dan pemformatan, dan sebagainya. Contoh berikut menunjukkan bagaimana pengembang perangkat lunak dapat menambahkan konten HTML dan lampiran ke pesan email di dalam Aplikasi Ruby.

Cara Menambahkan Konten HTML & Lampiran ke Pesan Email melalui Aplikasi 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

Arsipkan, Hapus, & Pindahkan Email melalui API Ruby

Perpustakaan Ruby-Gmail sangat kaya fitur dan dapat menangani operasi siklus hidup email dengan lancar di dalam aplikasi Ruby. Pengembang perangkat lunak dapat dengan mudah mengelola email dengan memindahkan, memberi label, menandai sebagai dibaca/belum dibaca, dll. Mereka juga dapat dengan mudah menandai email sebagai berbintang, belum dibaca, atau bahkan memindahkannya ke folder yang berbeda. Contoh kode Ruby berikut menunjukkan cara menandai email, menambahkan label, dan memindahkannya ke folder di dalam aplikasi Ruby.

Cara Menandai Email, Menambahkan Label, dan Memindahkan ke Folder Tertentu melalui Perpustakaan 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')
 Indonesia