Forum: Ruby on Rails scheduling mails in 2.3.8

B979fe61bc2fb30d4f88b6a9da418d97?d=identicon&s=25 honey jadala (honeyruby)
on 2012-07-20 13:23
(Received via mailing list)
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
689b479c1d1876281e8839077e96556e?d=identicon&s=25 terasawan (Guest)
on 2012-07-23 10:42
(Received via mailing list)
Hi.

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

2012/7/20 honey ruby <emailtohoneyruby@gmail.com>:
84c8411c59ddca8d82e65932f10e08e9?d=identicon&s=25 praneeth thota (praneeththota)
on 2012-07-23 13:38
(Received via mailing list)
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:



<h1>Send Email</h1>
<% form_for(:emailer, @emailer, :url=>{:action=>'sendmail'},
:html=>{:multipart=>true}) do |f| %>
<%= f.error_messages %>

<p><label for="email_subject">Subject</label>:
<%= text_field 'email', 'subject' %></p>
<p><label for="email_recipient">Recipient</label>:
<%= text_field 'email', 'recipient' %></p>
<p><label for="email_message">Message</label><br/>
<%= text_area 'email', 'message' %></p>
<p><label for="file_upload">Upload</label><br/>
<%= file_field 'email', 'file' %></p>
<%= 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
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.