`
cherest
  • 浏览: 1010 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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
2
分享到:
评论

相关推荐

    ruby on rails 实例depot

    3. **数据库配置**:Rails默认使用SQLite数据库,但你可以通过修改`config/database.yml`文件来选择其他数据库,如MySQL或PostgreSQL。 4. **模型(Models)**:在Rails中,模型代表数据模型和业务逻辑。例如,...

    Agile Web Development with Rails 3nd Edition Beta

    对于Rails的高级特性,如资产管道、邮件发送、会话管理、缓存策略、部署策略等,也有详尽的介绍。 在“敏捷Web开发”的背景下,书中强调迭代开发、用户反馈和持续集成的重要性。通过实例,读者将学习如何运用敏捷...

    Ruby-Griddler在Rails中简化接收电子邮件

    3. **路由**:在Rails应用中,你需要设置一个路由来处理邮件Webhook的POST请求。Griddler会处理这个请求,并将邮件数据转换成Ruby对象。 4. **处理Webhook请求**:当邮件服务提供商接收到新的邮件时,它会向你的...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...

    Ruby on Rails 指南 v5.0.1 中文版

    - **只读对象**:介绍如何创建只读的对象实例。 - **在更新时锁定记录**:说明如何在更新记录时加锁以避免并发问题。 - **联结表**:讲解如何处理多对多关联关系。 - **及早加载关联**:介绍如何预先加载关联对象以...

    Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf

    《Ruby on Rails应用程序测试指南》深入解读 一、为何为Rails应用编写测试? 在《Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf》这一指南中,开篇即强调了为Rails应用编写测试的重要性。...

    ruby on rails 搭建redmine

    3. **获取Redmine源码**:Redmine的源代码可以从GitHub等代码托管平台获取。使用Git克隆仓库,例如`git clone https://github.com/redmine/redmine.git`。 4. **数据库配置**:Redmine支持多种数据库,如MySQL、...

    Rails Recipes

    《Rails Recipes》是一本专注于Ruby on Rails开发实践的书籍,旨在提供一系列针对...而包含的"Rails Recipes.pdf"文件很可能是该书的电子版,读者可以通过阅读获取详细步骤和实例代码,进一步提升自己的Rails开发技能。

    The Rails 4 Way

    - 这部分涵盖了如何配置Rails应用程序的基本设置,包括数据库连接、邮件服务器等。 - 还包括了如何使用Rails提供的各种配置选项来定制应用程序的行为。 3. **开发模式** - 开发模式下,Rails会启用缓存、加载gem...

    blog.tar.gz_Rails

    总之,"blog.tar.gz_Rails"提供了一个学习和研究Ruby on Rails开发的实例,涵盖了从基础的MVC架构到高级特性的全方位实践。通过解压、运行和阅读代码,开发者可以深入理解Rails的工作原理和最佳实践。

    Ruby on Rails入门例子

    在本入门例子中,我们将通过一个简单的应用实例来学习 Rails 的基本概念和工作流程。首先,我们需要确保已经安装了 Ruby 和 Rails。你可以访问官网(https://ruby-lang.org/)下载 Ruby,并使用 `gem install rails`...

    RAILS ON RUBY

    3. **Routes**:Rails的路由系统将URL映射到特定的控制器动作,使得URL设计更加灵活和语义化。 4. **Scaffolding**:Rails提供了一种快速生成基本CRUD(创建、读取、更新、删除)操作的工具,帮助开发者快速搭建...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    第3章 安装Rails 15 3.1 购物清单 15 3.2 Windows上的安装 15 3.3 Mac OS X上的安装 17 3.4 Linux上的安装 17 3.5 选择Rails版本 18 3.6 开发环境 19 3.7 Rails和数据库 22 3.8 保持更新 23 3.8 Rails和ISPs 24 第4...

    mvc小项目实例

    随着对MVC模式的深入理解,你可以将其应用到更大规模的项目中,例如使用Spring MVC、ASP.NET MVC或Ruby on Rails等框架。此外,还可以探索前端MV*框架(如Angular、React或Vue.js),它们同样遵循类似的分层思想,但...

    使用ActionMail发送邮件

    3. 定义邮件方法: 在`WelcomeMailer`类中,定义一个方法来代表邮件的动作,例如`welcome_email`: ```ruby class WelcomeMailer default from: 'from@example.com' def welcome_email(user) @user = user ...

    Ruby-Mail一个Ruby邮件库

    只需提供必要的头部信息(如发件人、收件人、主题等)和邮件正文,即可创建一个完整的邮件实例。此外,还可以添加附件,例如图片、文档或其他文件。 ```ruby require 'mail' mail = Mail.new do to 'recipient@...

    使用Rails&Devise、Rhodes、Rhoconnect的示例应用程序_Ja.zip

    本示例应用程序"使用Rails&Devise、Rhodes、Rhoconnect的示例应用程序_Ja"为我们提供了一个全面了解这三种技术如何协同工作的实例。让我们逐一深入探讨这些技术。 首先,Rails是一个开源的Ruby框架,它遵循MVC...

    Ruby-Mailman一个Ruby邮件接收处理微框架

    2. **监听**:启动 Mailman 实例,开始监听邮件服务器,等待新邮件的到来。 3. **处理邮件**:当新邮件到达时,Mailman 会触发 `mail_received` 事件,你可以注册回调函数来处理这个事件。 4. **解析邮件**:在回调...

    reddit-on-rails:使用 Ruby on Rails 构建类似 reddit 的站点

    【描述】描述中提到,这是一个已经搭建好的类似 Reddit 的网站实例,可能包含了用户注册、登录、发布帖子、评论、点赞等核心功能。测试账号的信息(电子邮件和密码)允许我们直接体验和探索该应用的功能,无需自己...

Global site tag (gtag.js) - Google Analytics