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:in
new’
/usr/lib/ruby/1.8/net/protocol.rb:206:in old_open' /usr/lib/ruby/1.8/timeout.rb:62:in
timeout’
/usr/lib/ruby/1.8/timeout.rb:93:in timeout' /usr/lib/ruby/1.8/net/protocol.rb:206:in
old_open’
/usr/lib/ruby/1.8/net/smtp.rb:392:in do_start' /usr/lib/ruby/1.8/net/smtp.rb:377:in
start’
/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:in
send’
/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:in
method_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…