imap を使用して電子メールをアプリケーションにインポートしています。
次のコードがあります。
since_time = Net::IMAP.format_date sync_time
google.email.all folder: folder, keys: [ 'SINCE', since_time ] do |mail, imap, uid|
flags = imap.uid_fetch(uid, ['FLAGS'])[0].attr['FLAGS']
if flags.include?(:Seen)
#flags always has :Seen
メールが未読の場合は未読としてマークしたいのですが、上記のコードを使用すると、:Seen フラグが常に返されます。
私の理解では、メールが既読としてマークされている場合にのみ、:Seen フラグが返されるということでした。
フラグの仕組みを誤解していますか?