2 Stimmen

Abfrage der Größe eines Anhangs mit IMAP auf GMAIL

Ich möchte die Größe des Anhangs jeder E-Mail abrufen, ohne die Datei dafür herunterladen zu müssen. Ich verwende die Gmail-Edelstein .

EDIT: Ich suche nach einer Möglichkeit, die Größe nur durch Lesen der Kopfzeilen oder ähnliches zu ermitteln, ohne die gesamten Anhänge abrufen zu müssen, was ein sehr langer Prozess ist.

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

1voto

ScottJShea Punkte 6923

Ich habe Folgendes getan. Ich habe StringIO verwendet, um den Anhang in eine Datei im Speicher zu konvertieren, und dann die Größe genommen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X