邮件配置:
在enviroment.rb文件中:
- ActionMailer::Base.server_settings={
-
:address=>"smtp.gmail.com",
-
:port=>587,
-
:authentication=>:plain,
-
:user_name=>"gmail_account",
-
:password=>"gmail_password"
- }
ActionMailer::Base.server_settings = {
:address => "smtp.gmail.com",
:port => 587,
:authentication => :plain,
:user_name=> "gmail_account",
:password => "gmail_password"
}
如果按照上面的配置,一般邮件发送会不成功,因为gmail需要ssl方式来登录,ruby的lib中Net:SMTP TLS不支持,所以我们必须去下载一个plugin :
cd /my_rails_app/vendor/plugins
svn export https://openrain.com/opensource/public/rails/plugins/action_mailer_tls action_mailer_tls
为什么不用script/plugin install,我也不知道
下载成功之后,在config/initializers文件夹create一个ruby文件:smptp_gmail.rb
- require"smtp_tls"
-
mailer_config=File.open("#{RAILS_ROOT}/config/mailer.yml")
- mailer_options=YAML.load(mailer_config)
-
ActionMailer::Base.delivery_method=:smtp
-
ActionMailer::Base.default_charset="utf-8"
- ActionMailer::Base.smtp_settings=mailer_options
require "smtp_tls" #刚才下载的文件
mailer_config = File.open("#{RAILS_ROOT}/config/mailer.yml")
mailer_options = YAML.load(mailer_config)
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.smtp_settings = mailer_options
然后在config文件夹create一个yml文件:mailer.yml
- :address:smtp.gmail.com
-
:port:587
-
:user_name:gmail_account
-
:password:gmail_password
-
:authentication::plain
:address: smtp.gmail.com
:port: 587
:user_name: gmail_account
:password: gmail_password
:authentication: :plain
最后就可以script/generate mailer MyMailer send
- classMyMailer<ActionMailer::Base
-
defsend
-
recipients='receiveremailaddress'
-
from='youremailaddress'
-
subject='iloverubyonrails'
-
body[:account]='selina'
-
end
-
end
class MyMailer < ActionMailer::Base
def send
recipients = 'receiver email address' #接收者email地址
from = 'your email address' #发送者email地址
subject = 'i love ruby on rails'
body[:account] = 'selina'
end
end
开始发送: script/console
MyMailer.create_send #建一个email对象
MyMailer.deliver_send #发送email
最最最后:
其实把email stmp的配置文件写成一个yml文件的好处在于,如果你要改变stmp服务器的配置,直接再写一个yml文件就可以,比如A.yml , B.yml , C.yml ......
然后再File.open("#{RAILS_ROOT}/config/X.yml")
或者你觉得麻烦,也可以直接在enviroment.rb文件中:
- require'smtp_tls'
-
ActionMailer::Base.delivery_method=:smtp
-
ActionMailer::Base.default_charset="utf-8"
- ActionMailer::Base.server_settings={
-
:address=>"smtp.gmail.com",
-
:port=>587,
-
:authentication=>:plain,
-
:user_name=>"my_gmail_account",
-
:password=>"my_gmail_password"
- }
分享到:
相关推荐
Rails 2.0 API 文档是一个非常宝贵的资源,它为开发者提供了全面的指南,以便于在使用Ruby on Rails 2.0版本时更好地理解和利用其框架功能。Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-...
Rails 2.0允许根据模板文件的扩展名自动选择渲染引擎,比如`show.rhtml.erb`表示使用ERB(Embedded Ruby)来渲染`show.rhtml`模板。这提供了更多的灵活性,让开发者可以针对不同格式的输出定制视图。 除此之外,...
### Rails 2.0 的配置方法 #### 一、引言 Rails 2.0作为Ruby on Rails(简称ROR)框架的一个重要版本,在Web开发领域具有不可忽视的地位。本篇将详细介绍Rails 2.0的配置过程及注意事项,帮助初学者快速上手并深入...
这个“ruby on rails2.0本地安装包”适用于Windows和Linux操作系统,特别是针对网络速度较慢的用户设计,方便他们离线安装Rails 2.0.2版本。 在Rails 2.0版本中,有几个关键性的改进和特性: 1. **ActiveRecord**...
Rails 2.0对此进行了优化,使得该方法变得更加可靠且易于使用。 - **自定义验证规则**:除了内置的验证规则外,Rails 2.0还支持用户自定义验证逻辑,这为开发者提供了更大的灵活性。 ##### 1.2 查询缓存 - **查询...
总之,`sqlite3.def`和`sqlite3.dll`文件对于在Rails 2.0中使用SQLite数据库至关重要。它们提供了Rails应用与SQLite数据库通信的桥梁,使我们能够在开发过程中轻松管理和操作数据。通过配置Gemfile,设置数据库配置...
《jRuby on Rails WEB2.0》:将Ruby on Rails融入Java平台的实践指南 《jRuby on Rails WEB2.0》是一部由Ola Bini撰写的书籍,深入探讨了如何将Ruby on Rails这一敏捷开源框架与Java平台相结合,以构建高效、灵活的...
《JRuby on Rails Web 2.0 实用项目》 英文PDF + 源码
Rails 2.0版本在当时是一个重要的里程碑,引入了许多新特性并优化了已有的功能。 在Rails API文档中,你可以找到关于以下关键知识点的详尽解释: 1. **路由(Routing)** Rails的路由系统将HTTP请求映射到控制器的...
在Ruby on Rails框架中,`Rails 2.0.2`是一个较早的版本,而分页功能在那个时期并不像现在的Rails应用那样内置在框架内。为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在...
### JRuby on Rails Web 2.0 Projects:将Ruby on Rails引入Java平台 #### JRuby简介 JRuby是一种Ruby语言的实现,它运行在Java平台上,利用了Java虚拟机(JVM)的强大功能。JRuby使得开发人员能够在Java环境中使用...
《Advanced Rails Reciples》作为Rails领域的经典续作,由Brad Ediger撰写,并在2008年出版,涵盖了Rails 2.0版本的新特性及高级用法。本书不仅适合已经有一定Rails基础的开发者进阶学习,也适合希望深入了解Rails...
Rails,即Ruby on Rails,是一种使用Ruby语言构建的开源Web应用框架,遵循Model-View-Controller(MVC)架构模式。它由David Heinemeier Hansson设计并开发,首次发布于2005年。Rails 2.0版本在2007年底发布,带来了...