сортировать в алфавитном порядке imap.fetch в ruby - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь использовать библиотеку 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 голосов
/ 22 февраля 2012

Может быть, это:

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
...