按字母顺序排序ruby中的imap.fetch

时间:2012-02-22 05:18:56

标签: ruby arrays alphabetical

我正在尝试使用Ruby的IMAP库来获取所有电子邮件发件人的列表(“来自”),然后按字母顺序对其进行排序,然后计算来自每个人的电子邮件数量。

我在第1步上挂了 - 按字母顺序排序。这是我的代码,它返回所有“from”值的列表,但它们绝对不是按字母顺序排列的。

在这里完成红宝石新手 - 不到1周,所以请温柔。

mail_count = imap.search(["SINCE", @this_week.strftime("%d-%b-%Y")]).each do |message_id|
  envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
from_array = envelope.from[0].name.to_a
sorted_from = from_array.sort 
puts "#{sorted_from}"
end

1 个答案:

答案 0 :(得分:0)

也许这个:

results = []
mail_count = imap.search(["SINCE", @this_week.strftime("%d-%b-%Y")]).each do |message_id|
  envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
  from_array = envelope.from[0].name.to_a
  results << from_array
end
results.sort.each do |el|
  puts "#{el}"
end