Rails 3 邮件实例

环境:
     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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值