1. Produtos
  2.   E-mail
  3.   Ruby
  4.   Ruby-Gmail
 
  

Biblioteca de Criação e Processamento de E-mail Ruby de Código Aberto

API Ruby gratuita que permite permite que aplicativos Ruby acessem e manipulem contas do Gmail via IMAP. Compor, enviar, arquivar, mover e excluir mensagens de e-mail via Biblioteca Ruby.

O que é a biblioteca Ruby-Gmail?

Em uma era em que o e‑mail ainda desempenha um papel crucial nos fluxos de comunicação, os desenvolvedores de software frequentemente precisam interagir programaticamente com o Gmail. Seja extraindo relatórios, enviando notificações automatizadas ou monitorando caixas de entrada, ter as ferramentas certas pode economizar horas de esforço. Ruby-Gmail é uma gem Ruby de código aberto que fornece uma interface simples, ao estilo Ruby, para o Gmail via protocolo IMAP. Criada pelo desenvolvedor dcparker, a biblioteca abstrai a complexidade de lidar com comandos IMAP brutos e, em vez disso, oferece métodos legíveis e expressivos para trabalhar com caixas de entrada do Gmail, e‑mails, rótulos, anexos e muito mais. Com apenas algumas linhas de código Ruby, os desenvolvedores de software podem criar e enviar mensagens de e‑mail multipartes em texto simples e/ou HTML, com imagens embutidas e anexos.

Ruby-Gmail é uma joia escondida para Rubyists que desejam uma interface mínima e elegante para automatizar tarefas do Gmail. A biblioteca inclui vários recursos para trabalhar com e‑mails do Gmail, como autenticação no Gmail, leitura, pesquisa ou filtragem de e‑mails, composição e envio de mensagens, remoção ou exclusão de e‑mail, arquivamento de mensagens, acesso a anexos de e‑mail, organização de e‑mails usando rótulos e assim por diante. O desenvolvimento ativo da biblioteca e sua natureza de código aberto significam que ela continua a melhorar e a se adaptar às mudanças na API do Gmail. Além de alguns recursos excelentes, há também algumas limitações, como o OAuth2 ainda não ser suportado e a dependência de IMAP, que pode não expor todos os recursos específicos do Gmail. É uma escolha perfeita para tarefas de script ou para integrar o Gmail em aplicações Ruby leves.

Previous Next

Começando com Mail

A maneira mais fácil de instalar a biblioteca Ruby-Gmail é via RubyGems. Por favor, use o comando a seguir para uma instalação simples.

Instale Ruby-Gmail via Rubygems

gem install gmail

Autenticação de e‑mail em aplicativos Ruby

A biblioteca open source Ruby-Gmail suporta múltiplos métodos de autenticação, incluindo OAuth2 e nome de usuário/senha simples. Ela permite login simples usando um endereço Gmail e senha ou senha específica de aplicativo (recomendado para contas com 2FA). Alternativamente, se você precisar usar OAuth ou lidar com login fora do script, o Ruby-Gmail suporta conexão baseada em blocos. Observe que, por segurança, evite codificar senhas diretamente; use variáveis de ambiente ou gerenciamento de segredos. Os exemplos de código a seguir demonstram ambos os métodos para lidar com o processamento de autenticação de e‑mail via API Ruby.

Como executar autenticação de e‑mail básica e OAuth2 em aplicativos Ruby?

require 'gmail'

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

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

Pesquisar e filtrar e‑mails via API Ruby

A biblioteca Ruby-Gmail oferece funcionalidade completa para ler e pesquisar mensagens de e‑mail facilmente dentro de aplicações Ruby. Os desenvolvedores podem acessar a caixa de entrada, mensagens não lidas ou pesquisar por assunto, remetente ou data com facilidade. A biblioteca fornece uma interface de busca robusta que espelha os operadores de pesquisa do próprio Gmail. O exemplo a seguir demonstra como os desenvolvedores de software podem aplicar vários métodos para pesquisar mensagens de e‑mail em aplicativos Ruby.

Como pesquisar mensagens de e‑mail no Gmail via 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')

Composição e envio de e‑mail via Ruby

A biblioteca open source Ruby-Gmail oferece suporte completo para criar e enviar mensagens de e‑mail com apenas algumas linhas de código Ruby. A biblioteca torna a composição e o envio de e‑mails simples, permitindo adicionar conteúdo HTML, arquivos e imagens como anexos, enviar e‑mails em massa, aplicar estilos e formatação, entre outros. O exemplo a seguir mostra como os desenvolvedores de software podem adicionar conteúdo HTML e anexos a mensagens de e‑mail em aplicativos Ruby.

Como adicionar conteúdo HTML e anexos a uma mensagem de e‑mail via aplicativos 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

Arquivar, excluir e mover e‑mails via API Ruby

A biblioteca Ruby-Gmail é muito rica em recursos e pode lidar com as operações do ciclo de vida dos e‑mails de forma fluida dentro de aplicações Ruby. Os desenvolvedores de software podem gerenciar e‑mails facilmente, movendo‑os, rotulando‑os, marcando‑os como lidos/não lidos, etc. Eles também podem marcar e‑mails como favoritos, não lidos ou até mesmo movê‑los para diferentes pastas. O exemplo de código Ruby a seguir demonstra como marcar e‑mails, adicionar rótulos e mover para pastas em aplicações Ruby.

Como marcar e‑mail, adicionar rótulos e mover para uma pasta específica via 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')
 Português