Rails 3 邮件实例_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Rails 3 邮件实例

Rails 3 邮件实例

 2012/10/15 10:38:44  cherest  程序员俱乐部  我要评论(0)
  • 摘要:环境:WIN7X64Ruby1.9.2p290Rails3.2.3在Rails3中发邮件,与以往版本有许多不同,共有四个步骤,如下:实例如下:1、生成测试项目railsnewmailit2、生成测试scaffolduser并跑起来railsgscaffoldusername:stringemail:stringrakedb:createrakedb:migraterailss3、设置通用的邮件信息在config->initializers->setup_mail.rb其中内容为
  • 标签:rails 邮件 实例

环境:
???? WIN7 X64
???? Ruby 1.9.2p290
???? Rails 3.2.3

?

在Rails 3中发邮件,与以往版本有许多不同,共有四个步骤,如下:

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

实例如下:


1、生成测试项目
???? rails new mailit


2、生成测试scaffold user并跑起来
???? rails g scaffold user name:string email:string
???? rake db:create
???? rake db:migrate
???? rails s


3、设置通用的邮件信息
???? 在 config -> initializers -> setup_mail.rb
???? 其中内容为:
?? ???? ActionMailer::Base.smtp_settings = {
???????????? :address???????????????????? => 'smtp.xxx.cn',
???????? ???? :port????????????????????????? => 25,
???????? ???? :domain???????????????????? =>'xxx.cn',
???????? ???? :authentication????????? => :login,
???????? ???? :user_name??????????????? => 'webmaster@xxx.cn',
???????? ???? :password????????????????? => 'secrete',
???????? ???? :enable_starttls_auto =>? true
???? ???? }
?????? ActionMailer::Base.default_url_options[:host] = "localhost:3000(或者是域名)"


???? 上面这句,在生产环境与开发环境中可能会不同,如果需要通过capstrano部署的话,需要修改environment环境中的development环境。
???? ActionMailer::Base.default_url_options[:host] = "localhost:3000"

4、生成邮件_控制器映射关系
???? rails g mailer user_mailer
???? 生成如下文件app -> mailers ->user_mailer.rb
???? 增加如下内容:
????????? default :from => "webmaster@datasource.cn'
????? ??? def registration_confirmation(user)
????????? ? ?? mail(:to => user.email, :subject => 'Registered')
????? ??? end

?

5、建立邮件模板文件
???? Text格式
???? ???? app->views->user_mailer-> registration_confirmation.text.erb
???? ???? 内容
???? ???? Thank you for you registering!
???? HTML格式
????????? app->views->user_mailer->Registration_confirmation.html.erb
????????? 内容
???? ???? ???? <p><%=? @user.name %></p>
???? ???? ???? <p>Thank you for you registering!</p>
???? ???? ???? <p>Edit profile: <%=? link_to "edit_profile",edit_user_url(@user) %></p>
???? 默认情况下,html的优先级高于text。

?

6、建立触发action
???? 文件user_controller -> create
???? 内容:
???? ???? if @user.save
???? ???? UserMailer.registration_confirmation(@user).deliver

?

?

参考视频:http://railscasts.com/episodes/206-action-mailer-in-rails-3?autoplay=true

?

发表评论
用户名: 匿名