Email section

Sir , I want to implement email section in ma web application…
so i found the method ‘server_setting’ for it…
Following is the method:

config.action_mailer.server_settings = {
:address => “smtp.gmail.com” ,
:port => 25,
:domain => “gmail.com” ,
:authentication => :login,
:user_name => “manish” ,
:password => “belsare”
}

sir but wen i restart my web server following errors are generated:

[root@localhost ksmm]# script/server
=> Booting WEBrick
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
/usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/gem_dependency.rb:119:Warning:
Gem::Dependency#version_requirements is deprecated and will be removed
on or after August 2010. Use #requirement
/usr/lib/ruby/gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:402:in
method_missing': undefined method server_settings=’ for
ActionMailer::Base:Class (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:602:in
send' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:602:in initialize_framework_settings’
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:601:in
each' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:601:in initialize_framework_settings’
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:598:in
each' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:598:in initialize_framework_settings’
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:155:in
process' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in send’
… 7 levels…
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/commands/server.rb:84
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require’
from script/server:3

what shud i do 2 avoid this problem…
Is it because of the version of rails?

Hi,

It was probably for old action mailer. You should use
config.action_mailer.smtp_settings

Sir for the following suggestion it works well…

config.action_mailer.smtp_settings

But wen i further implement it…
It givs the following error:

getaddrinfo: Temporary failure in name resolution

Application Trace:

/usr/lib/ruby/1.8/net/protocol.rb:206:in initialize' /usr/lib/ruby/1.8/net/protocol.rb:206:innew’
/usr/lib/ruby/1.8/net/protocol.rb:206:in old_open' /usr/lib/ruby/1.8/timeout.rb:62:intimeout’
/usr/lib/ruby/1.8/timeout.rb:93:in timeout' /usr/lib/ruby/1.8/net/protocol.rb:206:inold_open’
/usr/lib/ruby/1.8/net/smtp.rb:392:in do_start' /usr/lib/ruby/1.8/net/smtp.rb:377:instart’
/usr/lib/ruby/gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:684:in
perform_delivery_smtp' /usr/lib/ruby/gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:525:insend
/usr/lib/ruby/gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:525:in
deliver!' /usr/lib/ruby/gems/1.8/gems/actionmailer-2.3.4/lib/action_mailer/base.rb:397:inmethod_missing’
/root/ksmm/app/controllers/email_controller.rb:12:in `remind’

SIr following errors were generated.Can u please help meh regarding
diz…
Thanks in Advance!

def remind
@title = “Mail me my login information”
if param_posted?(:user)
email = params[:user][:email]
user = User.find_by_email(email)
if user
UserMailer.deliver_reminder(user)
flash[:notice] = “Login information was sent.”
redirect_to :action => “index”, :controller => “site”
else
flash[:notice] = “There is no user with that email address.”
end
end
end

Sir this is the code that we implemented in email_controller for :action
=> “remind”

Do i need to make any corrections in diz code?

Manish,

/root/ksmm/app/controllers/email_controller.rb:12:in `remind’

It says there is an error on line 12. I’m guessing this is the line

  UserMailer.deliver_reminder(user)

You might want to paste the code for that method too.

Punit

class EmailController < ApplicationController

include ProfileHelper
before_filter :protect, :only => [ “correspond” ]

def remind
@title = “Mail me my login information”
if param_posted?(:user)
email = params[:user][:email]
user = User.find_by_email(email)
if user
UserMailer.deliver_reminder(user)
flash[:notice] = “Login information was sent.”
redirect_to :action => “index”, :controller => “site”
else
flash[:notice] = “There is no user with that email address.”
end
end
end

def email_sent

MyMailer::deliver_mail("[email protected]")

end

def correspond
user = User.find(session[:user_id])

id=session[:user_id]
 Personal.find_each do |@per|
    if(@per.user_id == id)           # id is user id
      @per_id = "#{@per.id}"        #que_id is question_id
      break
    end
 end
 idd=@per_id
 #flash[:notice] = idd
 iddd=idd.to_i


recipient = User.find_by_user_name(params[:id])

@title = "Email: #{@per.first_name} #{@per.last_name} 

(#{user.user_name}) :: Recipient: #{recipient.user_name}"
if param_posted?(:message)
@message = Message.new(params[:message])
if @message.valid?
UserMailer.deliver_message(
:user => user,
:recipient => recipient,
:message => @message,
:user_url => profile_for(user),
:reply_url => url_for(:action => “correspond”,
:id => user.user_name)
)
flash[:notice] = “Email sent.”
redirect_to profile_for(recipient)
end
end
end

end

ya diz is the code for email_controller…
Can u please tell me what is the problem that the email is not being
sent?

class UserMailer < ActionMailer::Base
def reminder(user)
@subject = ‘Your login information at KnowledgeEngine.com
@body = {}
#Give body access to the user information.
@body[“user”] = user
@recipients = user.email
@from = ‘KnowldegeEngine [email protected]
end

def message(mail)
subject mail[:message].subject
from ‘KnowledgeEngine [email protected]
recipients mail[:recipient].email
body mail
end

end

diz is the code for UserMailer…