У нас есть пользователь, чья почтовая учетная запись заполняется спамом. Я подозреваю, что он поместил большое количество учетных записей электронной почты и, следовательно, подвержен большему, чем может быть, с одним или двумя адресами.Как получить адрес получателя электронной почты через IMAP в Ruby
Я хочу сбить код, который будет сканировать его почтовый ящик и сообщать о количестве адресов, которые были отправлены по почте (в идеале, те, которые доставлены в его почтовый ящик, например, если он BCC'd и To: is billg @ microsoft.com, я хотел бы знать, какой адрес был тем, который достиг его).
Я могу получить To: если он присутствует в конверте, но если нет, то мне нужно вернуться к альтернативам, как Cc: и, возможно, получить в regex-y заголовки сообщений ID, кому это сообщение доставлено , Я могу справиться с этим. Я просто не уверен, как разделить объект 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
Это похоже аккуратной проблемы и хорошее направление/подход к поиску писем - но зачем вам нужно сканировать электронную почту пользователя? Что узнает все адреса электронной почты пользователя для вас? –
(1) Это поможет мне определить, является ли количество спама, которое он получает, является результатом того, что его организация перенаправила каждый неиспользованный адрес электронной почты за последнее десятилетие этому бедному парню. (2) Он предоставит мне полезный инструмент для анализа рабочей нагрузки с течением времени. Я бы ЛЮБЛЮ инструмент, который говорит мне, «кто по электронной почте мне и кто я по электронной почте, в последний (биллинг) месяц?». Почему для этого нет плагина? Наконец, (3) это поможет мне узнать немного больше Ruby. –