2012-02-22 6 views
0

Ruby의 IMAP 라이브러리를 사용하여 전자 메일의 보낸 사람 목록을 가져온 다음 ("보낸 사람") 알파벳 순으로 정렬하고 각 전자 메일 수를 계산합니다 사람.알파벳 순으로 정렬 ruby에서 imap.fetch를 사용합니다.

1 단계에서 매달려 있습니다. 사전 순으로 정렬됩니다. 이것은 내가 가진 코드이며 모든 "from"값의 목록을 반환하지만 확실히 알파벳 순서가 아닙니다.

완전한 루비 초심자는 여기에서 ... 1 개 미만 그래서 pls는 온후하다.

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 

답변

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 
+0

이 일! 이제 중복을 계산하고 e1의 정렬 된 목록을 생성하는 방법을 알아낼 수 있습니다 : Number of Repeats – krapdagn

관련 문제