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 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
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:
<% 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