Skip to content

Instantly share code, notes, and snippets.

@okeen
Created November 3, 2012 16:10
Show Gist options
  • Save okeen/4007767 to your computer and use it in GitHub Desktop.
Save okeen/4007767 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'mail'
require 'csv'
require 'nokogiri'
CSV.open 'emails.csv', 'wb' do |csv|
Dir.glob('*.eml').each do |mail_file|
mail = Mail.read mail_file
if mail.from.first == '[email protected]' && mail.subject =~ /My tickets/
puts "parsing #{mail_file}"
code = ""
name = ""
mail.parts.each do |part|
if part.content_type.start_with?('text/html') && !(part.body.decoded =~ /creativemediadays\.dev/)
doc = Nokogiri::HTML(part.body.decoded)
code = doc.xpath('//tr/*[img]').last.text.gsub("\r", "").gsub("\n", "")
name = doc.xpath('(//td)[13]').text.gsub("\r", "").gsub("\n", "")
end
end
subject = mail.subject.gsub("| My tickets", '')
csv << [code, mail.to.first, name, subject]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment