开源 Ruby 电子邮件创建与处理库
免费 Ruby API,允许 Ruby 应用通过 IMAP 访问和操作 Gmail 帐户。通过 Ruby 库编写、发送、存档、移动和删除电子邮件。
什么是 Ruby-Gmail 库?
在电子邮件仍然在沟通工作流中发挥关键作用的时代,软件开发者经常需要以编程方式与 Gmail 交互。无论是提取报告、发送自动通知,还是监控收件箱,拥有合适的工具都能节省大量时间。Ruby‑Gmail 是一个开源的 Ruby gem,提供了一个简洁、符合 Ruby 风格的接口,通过 IMAP 协议访问 Gmail。该库由开发者 dcparker 创建,抽象掉了处理原始 IMAP 命令的复杂性,提供可读且富有表现力的方法来操作 Gmail 收件箱、邮件、标签、附件等。只需几行 Ruby 代码,开发者就能创建并发送包含纯文本和/或 HTML、内嵌图片和附件的多部分电子邮件。
Ruby-Gmail 是为想要简约、优雅界面来自动化 Gmail 任务的 Ruby 开发者准备的隐藏宝石。该库包含多种处理 Gmail 邮件的功能,例如对 Gmail 进行身份验证、读取、搜索或过滤邮件、撰写并发送消息、删除或移除邮件、归档邮件、访问邮件附件、使用标签组织邮件等。库的积极开发和开源特性意味着它会持续改进并适应 Gmail API 的变化。除了这些出色的功能外,还存在一些限制,例如尚未支持 OAuth2,且依赖 IMAP,这可能无法提供所有 Gmail 特有的功能。它非常适合脚本任务或将 Gmail 集成到轻量级 Ruby 应用中。
Mail 入门
安装 Ruby-Gmail 库的最简方式是通过 RubyGems。请使用以下命令进行快速安装。
通过 Rubygems 安装 Ruby-Gmail
gem install gmailRuby 应用中的电子邮件身份验证
开源的 Ruby-Gmail 库支持多种认证方式,包括 OAuth2 和普通的用户名/密码。它允许使用 Gmail 地址和密码或应用专用密码(对启用双因素认证的账户推荐)进行简单登录。或者,如果您需要使用 OAuth 或在脚本外处理登录,Ruby-Gmail 支持基于块的连接。请注意,为了安全,避免硬编码密码;请使用环境变量或密钥管理。以下代码示例演示了通过 Ruby API 处理电子邮件认证的两种方法。
如何在 Ruby 应用中执行基本和 OAuth2 邮件身份验证?
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 应用中使用各种方法搜索电子邮件。
如何通过 Ruby API 在 Gmail 中搜索电子邮件?
# 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 内容、文件和图片附件、批量发送邮件、应用样式和格式等。下面的示例展示了软件开发者如何在 Ruby 应用中向电子邮件添加 HTML 内容和附件。
如何通过 Ruby 应用向电子邮件添加 HTML 内容和附件?
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')