Открытая Ruby библиотека для создания и обработки электронной почты

Бесплатный Ruby API, позволяющий Ruby‑приложениям получать доступ к аккаунтам Gmail и управлять ими через IMAP. Создавайте, отправляйте, архивируйте, перемещайте и удаляйте электронные сообщения с помощью Ruby‑библиотеки.

Что такое библиотека Ruby-Gmail?

В эпоху, когда электронная почта по‑прежнему играет решающую роль в коммуникационных процессах, разработчикам программного обеспечения часто необходимо программно взаимодействовать с Gmail. Будь то извлечение отчётов, отправка автоматических уведомлений или мониторинг входящих, наличие правильных инструментов может сэкономить часы труда. Ruby‑Gmail — это открытый Ruby‑gem, предоставляющий простой, «ruby‑подобный» интерфейс к Gmail через протокол IMAP. Созданный разработчиком dcparker, библиотека скрывает сложность работы с сырыми командами IMAP и вместо этого предлагает читаемые, выразительные методы для работы с почтовыми ящиками Gmail, письмами, метками, вложениями и многим другим. Всего лишь несколькими строками кода на Ruby разработчики могут создавать и отправлять многокомпонентные сообщения электронной почты в простом тексте и/или HTML, с встроенными изображениями и вложениями.

Ruby-Gmail — это скрытый драгоценный камень для Ruby‑разработчиков, желающих иметь минимальный, элегантный интерфейс для автоматизации задач Gmail. Библиотека включает различные возможности работы с письмами Gmail, такие как аутентификация в Gmail, чтение, поиск или фильтрация писем, составление и отправка сообщений, удаление писем, архивирование сообщений, доступ к вложениям, организация писем с помощью меток и т.д. Активная разработка библиотеки и её открытый исходный код означают, что она постоянно улучшается и адаптируется к изменениям API Gmail. Помимо множества полезных функций есть и некоторые ограничения, например, поддержка OAuth2 пока отсутствует и библиотека опирается на IMAP, что может не предоставлять всех специфических возможностей Gmail. Это идеальный вариант для скриптовых задач или интеграции Gmail в лёгкие Ruby‑приложения.

Previous Next

Начало работы с Mail

Самый простой способ установить библиотеку Ruby-Gmail — через RubyGems. Пожалуйста, используйте следующую команду для быстрой установки.

Установите Ruby-Gmail через Rubygems

gem install gmail

Аутентификация электронной почты в Ruby‑приложениях

Открытая библиотека Ruby-Gmail поддерживает несколько методов аутентификации, включая OAuth2 и обычный логин с именем пользователя/паролем. Она позволяет простую авторизацию с использованием адреса Gmail и пароля или пароля приложения (рекомендуется для аккаунтов с 2FA). При необходимости использовать OAuth или выполнять вход вне скрипта, Ruby-Gmail поддерживает подключение на основе блоков. Обратите внимание, что в целях безопасности следует избегать жесткого кодирования паролей; используйте переменные окружения или управление секретами. Ниже приведены примеры кода, демонстрирующие оба метода обработки аутентификации электронной почты через Ruby API.

Как выполнить базовую и OAuth2 аутентификацию электронной почты в Ruby‑приложениях?

require 'gmail'

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

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

Поиск и фильтрация писем через Ruby API

Библиотека Ruby-Gmail предоставляет полный набор функций для простого чтения и поиска электронных сообщений в Ruby‑приложениях. Разработчики могут легко получать доступ к входящим, непрочитанным сообщениям или выполнять поиск по теме, отправителю или дате. Библиотека предлагает мощный интерфейс поиска, который отражает собственные поисковые операторы Gmail. Ниже приведён пример, демонстрирующий, как разработчики могут применять различные методы поиска электронных сообщений в Ruby‑приложениях.

Как искать сообщения электронной почты в Gmail через Ruby API?

# 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')

Создание и отправка писем с помощью Ruby

Открытая библиотека Ruby-Gmail предоставляет полную поддержку создания и отправки электронных сообщений всего несколькими строками кода Ruby. Библиотека упрощает составление и отправку писем, позволяя добавлять HTML‑контент, файлы и изображения в виде вложений, отправлять массовые письма, применять стили и форматирование и т.д. Следующий пример показывает, как разработчики могут добавить HTML‑контент и вложения к электронным сообщениям в приложениях Ruby.

Как добавить HTML‑контент и вложения к сообщению электронной почты через 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

Архивирование, удаление и перемещение писем через Ruby API

Библиотека Ruby-Gmail обладает богатым набором функций и может плавно обрабатывать операции жизненного цикла электронной почты в Ruby‑приложениях. Разработчики могут легко управлять письмами, перемещая их, помечая метками, отмечая как прочитанные/непрочитанные и т.д.; они также могут помечать письма как избранные, непрочитанные или перемещать их в разные папки. Следующий пример кода на Ruby демонстрирует, как помечать письма, добавлять метки и перемещать их в папки в Ruby‑приложениях.

Как помечать письма, добавлять метки и перемещать их в определённую папку с помощью 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')
 Русский