`

rails3.1.0 发邮件 与问题

阅读更多

配置:

  

  Railsconfig/environments目錄下針對不同執行環境會有不同的郵件伺服器設定:

  

config.action_mailer.delivery_method

 

支援的選項包括:test:sendmailsmtp。在config/environments/test.rb中,預設是:test,也就是並不會實際寄信,而是將信件存在ActionMailer::Base.deliveries陣列中方便做功能測試。sendmail則是使用伺服器的/usr/bin/sendmail程式,不過因為因為不是每台伺服器都有適當安裝sendmail,所以最推薦的方式是採用:smtp協定來寄信,例如以下是一個使用Gmail寄信的範例,請修改config/environments/development.rbconfig/environments/production.rb:

config.action_mailer.delivery_method=:smtp
config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "gmail.com",
    :authentication => "plain",
    :user_name => "example@gmail.com",
    :password => "123456",
    :enable_starttls_auto => true
 }

 和Controller一樣,Rails也用generate指令產生Mailer類別,此類別中的一個方法就對應一個Email樣板。以下是一個產生Mailer的範例:

rails generate mailer UserMailer confirm

 如此便會產生 app/mailers/user_mailer.rb 檔案,並包含一個 confirm 的動作,其 template 在 app/views/user_mailer/ 下,也就是 confirm.text.erb (純文字格式)或 confirm.html.erb (HTML格式)。如果兩種格式的樣板檔案都有,那麼Rails會合併成一封Multiple Content TypesEmail

 

class UserMailer < ActionMailer::Base  
    default :from => "foobar@example.org"  

    def confirm(email)
        @message = "Thank you for confirmation!"
        mail(:to => email, :subject => "Registered")  
    end  
end  

 

其中 default 可以設定預設的寄件人。而 mail 方法可以設定收件人和郵件主旨。和View一樣,@user物件變數可以在app/views/user_mailer/confirm.text.erbapp/views/user_mailer/confirm.html.erb或樣板中存取到。

我們可以在 rails console 中測試,執行 UserMailer.confirm(“someone@example.org”).deliver 就會寄信出去。

同时修改:

 # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = true

 可以查看当邮件没发送时的错误信息。

注册时应用,我們會在 controller 之中,例如使用者註冊之後寄發信件:

def create
    user = User.new(params[:user])
    if user.save
        UserMailer.confirm(user.email).deliver
        redirect_to users_path
    else
        render :action => :new
    end
end

 以上内容来自 Ruby on Rails 实战圣经

 

分享到:
评论

相关推荐

    rails3.1.0解决数据库取出来的信息编码为utf-8

    标题 "rails3.1.0解决数据库取出来的信息编码为utf-8" 指向的是在使用Rails 3.1.0版本时遇到的一个常见问题,即从数据库检索的数据编码不是预期的UTF-8格式,导致显示异常或乱码。在Rails应用中,数据的正确编码对于...

    ruby on rails 3.1.0数据库查询方法汇总

    ### Ruby on Rails 3.1.0 数据库查询方法汇总 #### 一、基础操作 在 Ruby on Rails 3.1.0 中,对于数据库的操作非常便捷,主要包括数据的保存、创建、查找等功能。 1. **保存数据**: - `a = Category.new(:name...

    roadie-rails, 使HTML电子邮件适合 Rails rockstars.zip

    roadie-rails, 使HTML电子邮件适合 Rails rockstars roadie 使HTML电子邮件适合 Rails rockstars 。这里 gem 将 Rails 应用程序与Roadie钩子,以帮助你生成HTML电子邮件。安装将这个 gem 添加到你的Gemfile,

    maily, 在浏览器中,Rails 引擎预览电子邮件.zip

    maily, 在浏览器中,Rails 引擎预览电子邮件 Maily Maily是用于管理。测试和浏览应用程序所有电子邮件模板的Rails 引擎,可以直接在浏览器中预览它们。Maily会自动接收你所有的电子邮件,并让它们从一种仪表。插件...

    rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板.zip

    rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板 Rails 电子邮件预览 使用这里 Rails 引擎在浏览器中预览电子邮件。 兼容 Rails 4.2 。电子邮件审阅: 所有电子邮件预览的列表: 代表有两个主题...

    Rails101_by_rails4.0

    此外,书中还介绍了一些Rails中的高级概念,如Strong Parameters(强参数),它在Rails 4.0版本中引入,用于解决之前版本中的参数篡改问题,从而帮助开发者安全地处理外部提交的数据。 通过一系列的教学内容,包括...

    Rails项目源代码

    Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...

    Rails的邮件预览引擎MailsViewer.zip

    MailsViewer 是一个Rails 的邮件预览引擎,提供了表格用来浏览 tmp/mails 下的所有邮件,可轻松的浏览非产品模式下的邮件。 配置方法: config.action_mailer.delivery_method = :file config.action_mailer.file_...

    rails2.3.8 && ruby1.8.7

    8. `actionmailer-2.3.8.gem`:ActionMailer用于发送电子邮件,是Rails中处理邮件发送的组件。 9. `sqlite3-ruby-1.2.0-mswin32.gem`:这是SQLite3的Ruby绑定,允许Ruby程序直接与SQLite3数据库交互。 综上所述,这...

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

    在Rails应用中,Griddler通过一个中间件接口与各种电子邮件服务(如SendGrid、Mailgun、Postmark等)通信。它将接收到的原始邮件数据转换为一个易于处理的Ruby对象,这样开发者就可以方便地提取邮件中的内容、附件和...

    关于rails 3.1 cucumber-rails 1.2.0

    Cucumber-Rails集成了Cucumber与Rails,使得开发者能够在Rails环境中方便地使用Cucumber进行功能测试。 在 Rails 应用中使用 Cucumber-Rails,开发者可以创建一个名为`features`的目录,里面包含这些Gherkin特性...

    Rails的中文乱码问题

    标题中的“Rails的中文乱码问题”涉及到的是在使用Ruby on Rails框架开发Web应用时,遇到的中文字符编码不正确的问题。Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在...

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成.zip

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...

    rails3.1安装与mysql配置 windows

    标题 "rails3.1安装与mysql配置 windows" 涉及到的是在Windows操作系统上安装Ruby on Rails 3.1框架并配置MySQL数据库的过程。这是一个关键的开发环境设置步骤,对于使用Rails进行Web开发的程序员来说至关重要。Ruby...

    rails本地安装包完整版

    3. **actionmailer-2.1.0.gem**:ActionMailer使得在Rails应用中发送和接收电子邮件变得简单。它提供了一个抽象层,可以方便地创建、发送和接收邮件,同时处理SMTP服务器的配置和其他邮件相关的设置。 4. **...

    rails和mysql数据库连接中出现的问题以及解决办法

    首先,Rails与MySQL的连接问题可能源于配置不正确。在`config/database.yml`文件中,你需要提供正确的数据库连接信息,包括主机名、用户名、密码和数据库名。如果这些信息填写错误或者遗漏,Rails将无法建立到MySQL...

    ruby on rails与MySql的环境配置——支持rails 2.3.5以上版本

    《Ruby on Rails与MySQL环境配置详解》 在开发基于Web的应用程序时,Ruby on Rails(简称Rails)框架和MySQL数据库的结合是常见的选择。本文将详细介绍如何在Windows环境下配置Ruby on Rails以支持Rails 2.3.5及...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:读者已经具备一定的Ruby编程基础,并对Web开发有一定的了解。 #### 二、什么是Rails...

    Rails recipes

    Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...

    rails 邮件支持

    在这个例子中,`default from:` 设置了默认的发件人地址,而`welcome_email`方法接收一个`user`参数,用于定制邮件内容。`mail`方法定义了收件人和邮件主题。 接下来,我们需要在视图层(views)创建对应的模板文件...

Global site tag (gtag.js) - Google Analytics