我正在尝试通过动作邮件程序在rails相关代码中实现发送邮件..
my mailers / user_mailer.rb
class UserMailer < ActionMailer::Base
default :from => "debasish@thejaingroup.com"
def registration_confirmation(user)
mail(:to=>user.email, :subject =>"Registered")
end
end
users.controller是
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
UserMailer.registration_confirmation(@user).deliver
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
此处,您的initializer \ setup_mail.rb设置将转到development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 9292 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address =>"smtp.thejaingroup.com",
:domain =>"thejaingroup.com",
:port => 587,
:user_name =>"debasish@thejaingroup.com",
:password =>"************"
:authentication =>"plain"
}
我的观点是.. user_registration.text.erb ---是
Hi sir you successfully Completed signed..........!
运行此应用后我的错误消息.. UsersController中的SocketError #create getaddrinfo:请求的名称有效,但未找到所请求类型的数据。
答案 0 :(得分:0)
我不认为你在这里使用过的地址&#; smtp.thejaingroup.com&#39;是有效的电子邮件服务提供商的地址。如果您尝试使用Gmail,那么它应该是&#39; smtp.gmail.com&#39;。
这是正常的gmail配置。
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => ENV['gmail_username'],
:password => ENV['gmail_password'],
:authentication => "plain",
:enable_starttls_auto => true
}
在这种情况下,所有邮件都会发送到您的Gmail。 。如果您不希望发生这种情况,可以尝试使用gem letter_opener进行开发环境。对于生产环境,您可能必须使用诸如mandrill或sendgrid之类的电子邮件提供商。