scheduling mails in 2.3.8

Hi all,

  How can i send mails in rails 2.3.8 and schedule them when i need it. i've tried with whenever gem but it did not work properly . can any one help me out .

thanks in advance

Hi.

I think you should use cron and `script/runner'.

write the following code in development.rb

config.action_mailer.raise_delivery_errors = false

config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {

:tls => true,

:enable_starttls_auto => true,

:address => ‘smtp.gmail.com’,

:port => 587,

:authentication => :plain,

:user_name => ‘youremail@gmail.com’,

:password => ‘password’

}

in emailer model write the following code:

class Emailer < ActionMailer::Base

def contact(recipient, subject, message, sent_at = Time.now, files=[])

@subject = subject

@recipients = recipient

@from = ‘youremail@gmail.com’

@sent_on = sent_at

  @body["title"] = 'This is title'

  @body["email"] = 'youremail@gmail.com'

  @body["message"] = message

@headers = {}

  files.each do |file|

attachment “application/octet-stream” do |a|

a.body = file.read

a.filename = file.original_filename

end unless file.blank?

end

end

end

create one view and follow the code:

Send Email

<% form_for(:emailer, @emailer, :url=>{:action=>‘sendmail’}, :html=>{:multipart=>true}) do |f| %>

<%= f.error_messages %>

Subject:

<%= text_field ‘email’, ‘subject’ %>

Recipient:

<%= text_field ‘email’, ‘recipient’ %>

Message

<%= text_area ‘email’, ‘message’ %>

Upload

<%= file_field ‘email’, ‘file’ %>

<%= submit_tag “Send” %>

<% end %>

write the code in the controller:

class EmailerController < ApplicationController

def index

end

def sendmail

	@uploaded_files = []

	email = params["email"]

	puts email["file"]

	@uploaded_files << email["file"]

 recipient = email["recipient"]

  subject = email["subject"]

  message = email["message"]

Emailer.deliver_contact(recipient, subject, message, @uploaded_files)

return if request.xhr?

  @email = recipient

  @subject = subject

  @message = message

render :file => ‘app\views\emailer\contact.rhtml’

end

end