0

Ruby の IMAP ライブラリを使用して、すべての電子メールの送信者 (「差出人」) のリストを取得し、アルファベット順に並べ替えて、各人からの電子メールの数を数えようとしています。

ステップ 1 でハングアップしています - アルファベット順に並べ替えます。これは私が持っているコードで、すべての「from」値のリストを返しますが、それらは間違いなくアルファベット順ではありません。

ここで完全な Ruby 初心者 - 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
4

1 に答える 1

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
于 2012-02-22T05:31:14.007 に答える