我正在使用设计,并在有人使用 actionmailer 注册后尝试发送欢迎电子邮件。
我用...覆盖了设计上的注册控制器
def create
build_resource
if resource.save
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
UserMailer.welcome_email(resource).deliver
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
end
在那一行
UserMailer.welcome_email(resource).deliver
我打电话给我的 user_mailer.rb
default :from => "blink@gmail.com"
def welcome_email(user)
@user = user
@url = "http://example.com/login"
mail(:to => user.email, :submit => "Welcome YEAH!")
end
我在 app/views/user_mailer/welcome_email.text.erb 下有一个视图
在我的初始化程序文件夹中,我有一个 setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "blink@gmail.com",
:password => "example",
:authentication => "plain",
:enable_starttls_auto => true
}
在我的 development.rb 我有...
config.action_mailer.delivery_method = :sendmail
config.action_mailer.perform_deliveries = true
我很困惑为什么这不起作用。我写了一个较旧的项目,我让动作邮件程序开始工作。现在的代码与我的旧项目几乎相同。例外是我现在使用设计。
在我的终端窗口中,当我运行“rails server”时,在该窗口上它还显示...
Sent mail to blink@gmail.com (140ms)
Date: Thu, 12 Apr 2012 12:32:48 -0700
From: blink@gmail.com
To: blink@gmail.com
Message-ID: <4f872de096f4e_1805f3fdba4834cd493153@spiderman.local.mail>
Subject: Welcome email
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_4f872de0883d4_1805f3fdba4834cd49281a";
charset=UTF-8
Content-Transfer-Encoding: 7bit
submit: Welcome YEAH!
用户注册后。我不认为它真的发送虽然。我的 gmail 从来没有得到它,它不在我的垃圾邮件中。可能与设计的邮件/视图有关吗?但我在控制器中明确使用 UserMailer,这就是我覆盖它的原因
我被困了好几天!帮助将不胜感激。谢谢一堆