Hi guys,
Im trying this code below to poll the pop3 mailbox, which i can do as a
standalone .rb file which copies the files to inbox/ but now im trying
to do the same for the controller to open the emails and add the content
to the ticket system.
but all i get is error, can somebody enlighten me?
class IncomingMail < ActionMailer::Base
def receive(email)
@ticket = Ticket.new
@ticket.name = email.from[0]
@ticket.title = email.subject
@ticket.description = email.body
@ticket.save
end
end
class TicketsController < ApplicationController
def index
list
render :action => ‘list’
end
GETs should be safe (see
http://www.w3.org/2001/tag/doc/whenToUseGet.html)
verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }
def list
@ticket_pages, @tickets = paginate :tickets, :per_page => 10
end
def show
@ticket = Ticket.find(params[:id])
#@comment = params[:id]
end
def new
@ticket = Ticket.new
end
def create
@ticket = Ticket.new(params[:ticket])
if @ticket.save
flash[:notice] = ‘Ticket was successfully created.’
redirect_to :action => ‘list’
else
render :action => ‘new’
end
end
def edit
@ticket = Ticket.find(params[:id])
end
def update
@ticket = Ticket.find(params[:id])
if @ticket.update_attributes(params[:ticket])
flash[:notice] = ‘Ticket was successfully updated.’
redirect_to :action => ‘show’, :id => @ticket
else
render :action => ‘edit’
end
end
def destroy
Ticket.find(params[:id]).destroy
redirect_to :action => ‘list’
end
def add_comment
@comment =
Ticket.find(params[:id]).comments.create(params[:comment])
redirect_to :action => ‘show’, :id => params[:id], :comment=>
@comment
end
def poll_pop3
require ‘net/pop’
pop = Net::POP3.new(‘mail’)
pop.start(‘[email protected]’, ‘password’) # (1)
if pop.mails.empty?
else
i = 0
pop.each_mail do |m| # or "pop.mails.each ..." # (2)
IncomingMail.receive(m.pop)
i += 1
end
end
pop.finish
end
end