【发布时间】:2012-05-31 13:07:00
【问题描述】:
我正在尝试按照此 railscasts http://railscasts.com/episodes/274-remember-me-reset-password?view=asciicast 设置密码重置邮件。
在关注 heroku 博客设置我的环境后,我可以让我的邮件程序发送电子邮件。请注意,我使用 namecheap 作为我的域和 gmail/google 应用程序来处理我的电子邮件。 http://blog.heroku.com/archives/2009/11/9/tech_sending_email_with_gmail/
我遇到的问题是我收到的电子邮件正在替换我应该在域名所在的电子邮件。见下文:
To reset your password, click the URL below.
http://webmaster@mydomain.com/password_resets/qVwzCsKHZA-VS6GyDTTyQw/edit
我希望它是:
http://www.mydomain.com/password_resets/qVwzCsKHZA-VS6GyDTTyQw/edit
如何让邮件程序显示域名而不是网站管理员电子邮件?
我已经多次检查我的代码,我认为这只是某种类型的转发问题。如果您希望我发布任何相关代码,请告诉我。
这是在我的 production.rb 中:
config.action_mailer.default_url_options = { :host => "webmaster@mydomain.com" }
password_resets_controller.rb
def create
user = User.find_by_email(params[:email])
user.send_password_reset if user
redirect_to login_path, :notice => "Email sent with password reset"
end
用户.rb
def send_password_reset
generate_token(:password_reset_token)
self.password_reset_sent_at = Time.zone.now
save!
UserMailer.password_reset(self).deliver
end
user_mailer.rb
class UserMailer < ActionMailer::Base
default :from => "webmaster@mysite.com"
def password_reset(user)
@user = user
mail :to => user.email, :subject => "Password Reset"
end
end
password_reset.text.erb
To reset your password, click the URL below.
<%= edit_password_reset_url(@user.password_reset_token) %>
谢谢。
【问题讨论】:
-
创建该链接的代码怎么样(如果你使用
default_url_options而不是传递:host,那设置为什么? -
@FrederickCheung 根据您的要求添加了代码。
标签: ruby-on-rails ruby-on-rails-3 heroku actionmailer railscasts