RubyCocoa でアドレスブックをいじる
サーバに送られてくるスパムメールがだんだんうざくなってきたので、 一旦アドレスブックに登録されていないメールアドレスから送られてきたメールは一時置き場に隔離しようと思い、 RubyCocoa からアドレスブックをいじろう調べもの。
とりあえず以下のコードでアドレスブックに含まれているメールアドレスはすべて取得できるようだ。
require 'osx/cocoa'
OSX.require_framework 'AddressBook'
#http://developer.apple.com/mac/library/DOCUMENTATION/UserExperience/Reference/AddressBook/Miscellaneous/AddressBook_Constants/Reference/reference.html
book = OSX::ABAddressBook.sharedAddressBook
me = book.me
OSX::ABAddressBook.sharedAddressBook.people.each do |person|
if person == me
next
end
emails = person.valueForProperty(OSX::KABEmailProperty)
if emails
count = emails.count
(0...count).each do |index|
email = emails.valueAtIndex(index)
puts email
end
end
end
pp book.public_methods とかやっても、cocoa のメソッドは見ることができないので、
ドキュメントを読まなくちゃいけないのがめんどくさい。