Email embedding

L

Leslie Viljoen

Hello!

Seeing the XML-like format one of the quiz posters used for sending in
his program, I wrote two programs that can embed and extract multiple
files from an email. I'll include the programs in their own format so
you can understand ;-)

Someone may have already done something like this, but if not, here you go.

I know of one problem - the uncruncher adds a blank line at the end of
the files it extracts, so someone might want to fix that.

<code>
<CRUNCHFILE: email_crunch.rb>
#/usr/bin/env ruby

# email_crunch
# usage: email_crunch.rb *.rb > crunchfile.txt

puts "<code>"
ARGV.each do |f|
next if FileTest.directory?(f)

puts "<CRUNCHFILE: #{f}>"
puts File.new(f).read
puts "</CRUNCHFILE: #{f}>"
end
puts "</code>"

</CRUNCHFILE: email_crunch.rb>
<CRUNCHFILE: email_uncrunch.rb>
#/usr/bin/env ruby

# email_uncrunch
# usage: cat crunch_file | email_uncrunch.rb
# or : email_uncrunch.rb crunch_file

require 'breakpoint'

if ARGV.length != 0
text = File.new(ARGV[0]).read
else
text = $stdin.read
end

text =~ /<code>(.*)<\/code>/m
code = $1

filename = ""
f = nil

code.each_line do |line|
line.chomp!
if line =~ /^<CRUNCHFILE: (.+?)>$/
filename = $1
puts "Creating #{filename}"
f = File.new(filename, "w")
elsif !filename.empty?
if line == "</CRUNCHFILE: #{filename}>"
f.close
filename = ""
else
f.puts(line)
end
end
end

</CRUNCHFILE: email_uncrunch.rb>
</code>


- Les
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,144
Latest member
KetoBaseReviews
Top