如何在不下载的情况下获取imap和pop3中的电子邮件附件的文件名?

时间:2014-12-04 11:28:34

标签: ruby email imap email-attachments pop3

我有一个用例,我想获取特定电子邮件的所有附件的文件名,而无需下载附件。可以使用IMAP和POP3吗?

我正在使用ruby的Net :: IMAP和NET :: POP3类。

2 个答案:

答案 0 :(得分:2)

这应打印有关附件的信息(未经测试),但您可以查看here

require 'net/imap'
imap = Net::IMAP.new('domain.name.com')
imap.authenticate('LOGIN', 'mailbox', 'password')
imap.select('INBOX')
imap.search(["SINCE", "8-Aug-2002"]).each do |message_id|
attach = imap.fetch(message_id, "BODY")[0].attr["BODY"]
  puts "#{attach.parts[1].media_type}"
  puts "#{attach.parts[1].param['NAME']}"
  puts "#{attach.parts[1].subtype}"
  puts "#{(attach.parts[1].size)/1024} kb"
end

答案 1 :(得分:0)

使用IMAP .filename

require 'net/imap'
require 'mail'

imap = Net::IMAP.new('HOST', 993, true)
imap.login('username@mail.com', 'PASSWORD')
imap.examine('INBOX')
imap.search(["SINCE", "30-Nov-2020"]).each do |message_id|
  body = imap.fetch(message_id, "BODY[]")[0].attr["BODY[]"]
  mail = Mail.new(body)
  mail.attachments.each do |a|
    p a.filename
end