Biblioteca de creación y procesamiento de correo Ruby de código abierto
API Ruby gratuita que permite a las aplicaciones Ruby acceder y manipular cuentas de Gmail mediante IMAP. Redactar, enviar, archivar, mover y eliminar mensajes de correo mediante la biblioteca Ruby.
¿Qué es la biblioteca Ruby-Gmail?
En una era en la que el correo electrónico sigue desempeñando un papel crucial en los flujos de trabajo de comunicación, los desarrolladores de software a menudo necesitan interactuar con Gmail de forma programática. Ya sea extrayendo informes, enviando notificaciones automáticas o monitoreando bandejas de entrada, contar con las herramientas adecuadas puede ahorrar horas de esfuerzo. Ruby-Gmail es una gema de Ruby de código abierto que ofrece una interfaz simple, al estilo Ruby, para Gmail a través del protocolo IMAP. Creada por el desarrollador dcparker, la biblioteca abstrae la complejidad de manejar comandos IMAP sin procesar y, en su lugar, brinda métodos legibles y expresivos para trabajar con bandejas de entrada de Gmail, correos electrónicos, etiquetas, archivos adjuntos y más. Con solo un par de líneas de código Ruby, los desarrolladores pueden crear y enviar mensajes de correo electrónico multipartes en texto plano y/o HTML, con imágenes incrustadas y archivos adjuntos.
Ruby-Gmail es una joya oculta para los Rubyists que desean una interfaz mínima y elegante para automatizar tareas de Gmail. La biblioteca incluye varias funciones para trabajar con correos de Gmail, como autenticarse en Gmail, leer, buscar o filtrar correos, redactar y enviar mensajes, eliminar o borrar correos, archivar mensajes, acceder a los archivos adjuntos, organizar correos usando etiquetas, entre otras. El desarrollo activo de la biblioteca y su naturaleza de código abierto hacen que continúe mejorando y adaptándose a los cambios en la API de Gmail. Además de algunas excelentes características, también existen limitaciones, como que OAuth2 aún no es compatible y se basa en IMAP, lo que puede no exponer todas las funciones específicas de Gmail. Es una opción perfecta para tareas de scripting o para integrar Gmail en aplicaciones Ruby ligeras.
Primeros pasos con Mail
La forma más fácil de instalar la biblioteca Ruby-Gmail es a través de RubyGems. Por favor, use el siguiente comando para una instalación sencilla.
Instalar Ruby-Gmail vía Rubygems
gem install gmailAutenticación de correo electrónico en aplicaciones Ruby
La biblioteca de código abierto Ruby-Gmail admite múltiples métodos de autenticación, incluidos OAuth2 y nombre de usuario/contraseña simples. Permite iniciar sesión de forma sencilla usando una dirección de Gmail y contraseña o una contraseña específica de la aplicación (recomendado para cuentas con 2FA). Alternativamente, si necesita usar OAuth o gestionar el inicio de sesión fuera del script, Ruby-Gmail admite conexión basada en bloques. Tenga en cuenta que, por seguridad, evite codificar contraseñas directamente; use variables de entorno o gestión de secretos. Los siguientes ejemplos de código demuestran ambos métodos para manejar la autenticación de correos electrónicos mediante la API de Ruby.
¿Cómo realizar la autenticación básica y OAuth2 de correo electrónico dentro de aplicaciones Ruby?
require 'gmail'
# Basic authentication (less secure)
gmail = Gmail.connect(username, password)
# OAuth2 authentication (recommended)
gmail = Gmail.connect(:oauth2, username, access_token)
Buscar y filtrar correos electrónicos mediante la API de Ruby
La biblioteca Ruby-Gmail ha ofrecido una funcionalidad completa para leer y buscar mensajes de correo electrónico fácilmente dentro de aplicaciones Ruby. Los desarrolladores pueden acceder a la bandeja de entrada, mensajes no leídos, o buscar por asunto, remitente o fecha con facilidad. La biblioteca proporciona una interfaz de búsqueda robusta que replica los operadores de búsqueda propios de Gmail. El siguiente ejemplo demuestra cómo los desarrolladores de software pueden aplicar varios métodos para buscar mensajes de correo electrónico dentro de aplicaciones Ruby.
¿Cómo buscar mensajes de correo electrónico en Gmail mediante la API de 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')
Composición y envío de correos electrónicos mediante Ruby
La biblioteca de código abierto Ruby-Gmail ha proporcionado soporte completo para crear y enviar mensajes de correo electrónico con solo un par de líneas de código Ruby. La biblioteca hace que la composición y el envío de correos electrónicos sea sencillo, permite agregar contenido HTML, archivos e imágenes adjuntas, enviar correos masivos, aplicar estilos y formato, y más. El siguiente ejemplo muestra cómo los desarrolladores de software pueden agregar contenido HTML y archivos adjuntos a los mensajes de correo electrónico dentro de aplicaciones Ruby.
¿Cómo agregar contenido HTML y archivos adjuntos a un mensaje de correo electrónico mediante aplicaciones 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
Archivar, eliminar y mover correos electrónicos mediante la API de Ruby
La biblioteca Ruby-Gmail es muy rica en funciones y puede manejar las operaciones del ciclo de vida del correo electrónico sin problemas dentro de aplicaciones Ruby. Los desarrolladores de software pueden gestionar fácilmente los correos electrónicos moviéndolos, etiquetándolos, marcándolos como leídos/no leídos, etc. También pueden marcar fácilmente los correos como destacados, no leídos o incluso moverlos a diferentes carpetas. El siguiente ejemplo de código Ruby demuestra cómo marcar correos, agregar etiquetas y moverlos a una carpeta dentro de aplicaciones Ruby.
¿Cómo marcar correos, agregar etiquetas y moverlos a una carpeta específica mediante la biblioteca 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')