У нас есть пользователь, чей почтовый аккаунт залит спамом. Я подозреваю, что он выставляет большое количество учетных записей электронной почты и поэтому подвергается большему, чем он мог бы иметь только один или два адреса.
Я хочу создать некоторый код, который будет сканировать его почтовый ящик и сообщать о количестве адресов, которые были отправлены по почте (в идеале те, которые были доставлены в его почтовый ящик, например, если он BCC-адрес и To: is billg @ microsoft) .com, я хотел бы знать, какой адрес был тот, который достиг его).
Я могу получить To: если он присутствует в конверте, но если нет, то мне нужно прибегнуть к альтернативам, таким как Cc: и, возможно, на самом деле получить regex-y в заголовках сообщения, чтобы идентифицировать, для кого это сообщение было доставлено. Я могу справиться с этим. Я просто не уверен, как разобрать объект Ruby msg.
Так что, возможно, лучшим вопросом для меня будет: «зная, что у меня есть объект msg, возвращенный из imap.fetch, как я могу проверить различные доступные методы, такие как msg.to и msg.from?»
И, возможно, также «я должен использовать необычную почтовую библиотеку, такую как Ruby's Mail?»
Код до сих пор - я ДЕЙСТВИТЕЛЬНО новичок в Ruby, хорошо?
imap = Net::IMAP.new(server)
imap.login(user, pass)
imap.select(folder)
imap.search(['ALL']).each do |message_id|
msg = imap.fetch(message_id,'ENVELOPE')[0].attr['ENVELOPE']
if msg.to
puts "#{msg.to[0].mailbox}@#{msg.to[0].host}: \t#{msg.from[0].name}: \t#{msg.subject}"
else
# puts msg.inspect
msg = imap.fetch(message_id,'RFC822')[0].attr['RFC822']
puts msg.inspect
quit
end
# p msg.methods
end