Mail issue

Hello!

I need to get mails from a mail server using pop3, save to disk to later
resend.

The get part:

  pop = Net::POP3.new 'mail server'
  pop.start 'address', 'password'

  if pop.mails.empty?
    puts "No mail"
  else
    puts "Have mails"

    pop.mails.each_with_index do |m,i|
      File.open("inbox/#{i}", "w+") do |f|
        f.write m.pop
      end
    end
  end

With this code i can download and save the mails into files.

Now i need get this files and resend as mails, this is the part isnt
working...

  smtp = Net::SMTP.new 'mail address', port
  smtp.start 'mail domain', 'username', 'password', :login

  puts smtp.sendmail File.read(file from get path), 'from', 'to'

Well, the send part is broken, can anyone help me?

···

--
Posted via http://www.ruby-forum.com/.

Here is a mass Emailer that uses a TK front end. If you don't want the front end you can just remove the calls and such...no big. It uses 2 files the **.txt file holds the Emails and the **.html holds the actual page.

############START SCRIPT###########
require 'fileutils'
require 'net/smtp'
require 'tk'

begin

root = TkRoot.new('background'=>'white'){title "My Frontend"}
$text = TkText.new(root, 'width'=>30){ background 'white'; pack("padx"=>1, "pady"=>1, "side"=>'left')}

$emailName = Array::new
$emailAddress = Array::new

$eT = File.read('test_par.html')

   IO.foreach('emails.txt','\n') do |line|
  $text.insert('end', "#{line}")
   end

class SendEmail

  def send_mail

  $emailName = $text.value

    #text.value.each do |name|
    # p name.scan(/.*?[^\[^\]^\n]$/).flatten
    #end
    
    $emailName.each do |name|

    begin
      $address = name.scan(/.*?[^\n]$/).flatten #separate out the Email address
      
      Net::SMTP.start('mail.hrsmart.com', 25, 'localhost','EMAIL ACCOUNT NAME','PASSWORD', :plain) do |smtp|
        smtp.open_message_stream('FROM EMAIL ADDRESS', $address) do |f|
          f.puts 'From: bigdaddydigalow@hotmail.com'
          f.puts "To: #{$address}"
          f.puts "MIME-Version: 1.0
          f.puts "Content-type: text/html"
          f.puts 'Subject: January Tattoo Specials'
          f.puts
          f.puts "#{$eT}"
        end
      end

      #puts message
      #p $address

    rescue Exception => e
      puts "Could not send to #{$address} - #{e.message}\n"
      #puts e.backtrace.inspect
    end
  end
  end
end

TkButton.new(root, 'background'=>'blue', 'foreground'=>'white'){text "Send Mail"; command{SendEmail.new.send_mail}; pack('side'=>'left', 'padx'=>1, 'pady'=>1)}

rescue
  print "Exception occured\n"
end

Tk.mainloop
############END SCRIPT###########

---- Diego Bernardes <di3go.bernardes@gmail.com> wrote:

···

Hello!

I need to get mails from a mail server using pop3, save to disk to later
resend.

The get part:

  pop = Net::POP3.new 'mail server'
  pop.start 'address', 'password'

  if pop.mails.empty?
    puts "No mail"
  else
    puts "Have mails"

    pop.mails.each_with_index do |m,i|
      File.open("inbox/#{i}", "w+") do |f|
        f.write m.pop
      end
    end
  end

With this code i can download and save the mails into files.

Now i need get this files and resend as mails, this is the part isnt
working...

  smtp = Net::SMTP.new 'mail address', port
  smtp.start 'mail domain', 'username', 'password', :login

  puts smtp.sendmail File.read(file from get path), 'from', 'to'

Well, the send part is broken, can anyone help me?
--
Posted via http://www.ruby-forum.com/\.