Получить размер вложения с помощью IMAP на GMAIL - PullRequest
2 голосов
/ 14 марта 2012

Я хотел бы получить размер вложения каждого письма, не загружая файл, чтобы получить его.Я использую Gmail gem .

РЕДАКТИРОВАТЬ: Я ищу способ, чтобы получить размер только путем чтения заголовков или аналогичных без необходимости извлечения целых вложений, который являетсяочень долгий процесс.

gmail = Gmail.connect(:xoauth, self.email, 
  :token           => self.token,
  :secret          => self.secret,
  :consumer_key    => 'SECRET',
  :consumer_secret => 'SECRET'
)
mails = gmail.mailbox("[Gmail]/All Mail").emails
mails.each do |mail|
  next if mail.message.attachments.blank?
  # How to get the message's size if possible ?
  mail.message.attachments.each do |attachment|
    # How to get the attachment's size ?
  end
end

1 Ответ

1 голос
/ 14 марта 2012

Вот что я сделал.Я использовал StringIO для преобразования вложения в файл в памяти, а затем взял размер:

require 'rubygems'
require 'gmail'
require 'ap' #awesome_print gem

gmail = Gmail.connect("name","password") #simple authorization
mails = gmail.mailbox("[Gmail]/All Mail").emails
mails.each do |mail|
  next if mail.message.attachments.blank?
  mail.message.attachments.each do |attachment|
    file = StringIO.new(attachment.to_s)
    ap file.size
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...