- 浏览: 2072147 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
链接如果,你是在找
553 You are not authorized to send mail, authentication is required 这个问题的原因,请跳这里,Rails smtp 邮件出错时
Action Mailer 是Rails的一个组件用来发送接收邮件,下面将演示,如何使用它创建SMTP邮件。从命令创建Rails工程开始:
Action Mailer 配置
smtp邮件发送,首先需要配置,在config的environment.rb最后
添加
这个配置是指定使用smtp,下面具体的使用参数:
也要在environment.rb中配置
以上配需要根据实际情况写,端口验证方式和发送类型。同样,配置也可以是
接着是生成mailer命令如下:
生成文件:
我们需要在添加方法:
其中, recipient, subject, message 和 sent_at是关于发送的参数,同时我们还有六个标准参数
*@subject主题.
* @body 是Ruby的hash结构。你可以创建三个值对title, email, message
* @recipients接受邮件的地址列表
* @from发件人地址列表.
* @sent_on发送时间.
* @headers是另外的hash结构标识header信息如,配置MIME typeplain text 或 HTML
然后,创建发送模板
修改如下文件app/views/contact.rhtml
创建对应controller处理逻辑
在 emailer_controller.rb中调用上面创建的Model实现发送逻辑:
发送邮件,需要添加deliver_到发送的对应方法前。
request.xhr?是用阿里处理Rails Java Script(RJS)当浏览器不支持JavaScript时可以发送text信息。
下面是发送内容的输入界面,首先在emailer_controller.rb添加相应方法
在app\views\emails\index.rhtml文件中设计输入界面
然后,http://127.0.0.1:3000/Emailer/inde页面测试
如下:
点击发送,就应该看到成功提示
这句把@params改为params后能正常实现..
553 You are not authorized to send mail, authentication is required 这个问题的原因,请跳这里,Rails smtp 邮件出错时
Action Mailer 是Rails的一个组件用来发送接收邮件,下面将演示,如何使用它创建SMTP邮件。从命令创建Rails工程开始:
C:\ruby\> rails emails
Action Mailer 配置
smtp邮件发送,首先需要配置,在config的environment.rb最后
添加
ActionMailer::Base.delivery_method = :smtp
这个配置是指定使用smtp,下面具体的使用参数:
也要在environment.rb中配置
ActionMailer::Base.server_settings = { :address => "smtp.tutorialspoint.com", :port => 25, :domain => "tutorialspoint.com", :authentication => :login, :user_name => "username", :password => "password", }
以上配需要根据实际情况写,端口验证方式和发送类型。同样,配置也可以是
ActionMailer::Base.default_content_type = "text/html"#其中type可以是"text/plain", "text/html", 和 "text/enriched"."text/plain"是默认
接着是生成mailer命令如下:
C:\ruby\> cd emails C:\ruby\emails> ruby script/generate mailer Emailer
生成文件:
class Emailer < ActionMailer::Base end
我们需要在添加方法:
class Emailer < ActionMailer::Base def contact(recipient, subject, message, sent_at = Time.now) @subject = subject @recipients = recipient @from = 'no-reply@yourdomain.com' @sent_on = sent_at @body["title"] = 'This is title' @body["email"] = 'sender@yourdomain.com' @body["message"] = message @headers = {} end end
其中, recipient, subject, message 和 sent_at是关于发送的参数,同时我们还有六个标准参数
引用
*@subject主题.
* @body 是Ruby的hash结构。你可以创建三个值对title, email, message
* @recipients接受邮件的地址列表
* @from发件人地址列表.
* @sent_on发送时间.
* @headers是另外的hash结构标识header信息如,配置MIME typeplain text 或 HTML
然后,创建发送模板
修改如下文件app/views/contact.rhtml
Hi! You are having one email message from <%= @email %> with a tilte <%= @title %> and following is the message: <%= @message %> Thanks
创建对应controller处理逻辑
C:\ruby\emails> ruby script/generate controller Emailer
在 emailer_controller.rb中调用上面创建的Model实现发送逻辑:
class EmailerController < ApplicationController def sendmail email = @params["email"] recipient = email["recipient"] subject = email["subject"] message = email["message"] Emailer.deliver_contact(recipient, subject, message) return if request.xhr? render :text => 'Message sent successfully' end end
发送邮件,需要添加deliver_到发送的对应方法前。
request.xhr?是用阿里处理Rails Java Script(RJS)当浏览器不支持JavaScript时可以发送text信息。
下面是发送内容的输入界面,首先在emailer_controller.rb添加相应方法
def index render :file => 'app\views\emailer\index.rhtml' end
在app\views\emails\index.rhtml文件中设计输入界面
<h1>Send Email</h1> <%= start_form_tag :action => 'sendmail' %> <p><label for="email_subject">Subject</label>: <%= text_field 'email', 'subject' %></p> <p><label for="email_recipient">Recipient</label>: <%= text_field 'email', 'recipient' %></p> <p><label for="email_message">Message</label><br/> <%= text_area 'email', 'message' %></p> <%= submit_tag "Send" %> <%= end_form_tag %>
然后,http://127.0.0.1:3000/Emailer/inde页面测试
如下:
点击发送,就应该看到成功提示
评论
5 楼
fireflyman
2010-11-04
email = @params["email"]
这句把@params改为params后能正常实现..
4 楼
qichunren
2009-12-31
夜鸣猪,there is an error in the article :ActionMailer::Base.server_settings,
in fact is :ActionMailer::Base.smtp_settings.
wo de shuyufa huai le
in fact is :ActionMailer::Base.smtp_settings.
wo de shuyufa huai le
3 楼
FlyingPiggy
2009-07-27
了解,谢谢。
2 楼
夜鸣猪
2009-07-27
应该是1.8.7和2.2.2
1 楼
FlyingPiggy
2009-07-26
可以说明一下你做这个程序时的环境吗?Ruby和Rails的版本号?
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 927heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3255reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3287alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1470问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1379这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1344以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1903首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2272这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2262开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1234class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8138TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2018刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1480这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1939面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17209git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2731简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 945第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1691开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12951Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2115又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
Rails集成了Action Mailer库,使得处理邮件发送变得简单且灵活。这篇博文将深入探讨Rails中的邮件支持。 首先,让我们了解一下Action Mailer。它是Rails内置的一个组件,专门用于发送电子邮件。它的工作原理是通过...
本示例项目"mailgun-rails-example"将指导你如何通过Mailgun的API或SMTP协议在Rails应用中实现邮件发送。 首先,我们需要安装`mailgun-rails` gem,它是Ruby gem,用于简化与Mailgun接口的交互。在你的`Gemfile`中...
通过定义Mailer类和邮件模板,我们可以轻松地创建各种类型的邮件,并通过配置SMTP服务器实现实际的发送。在实际开发中,ActionMail还可以与其他Rails功能结合,如活动跟踪、通知系统等,进一步提升应用的用户体验。
在Ruby on Rails框架中,Mailer是用于处理电子邮件发送的一个关键组件。它允许开发者方便地创建、格式化并发送邮件,通常用于用户注册确认、密码重置通知等场景。以下是对Ruby on Rails中Mailer的详细解释及其最佳...
MailsViewer 是一个Rails 的邮件预览引擎,提供了表格用来浏览 tmp/mails 下的所有邮件,可轻松的浏览非产品模式下的邮件。 配置方法: config.action_mailer.delivery_method = :file config.action_mailer.file_...
MultiSMTP 接受一组 (1..N) SMTP 提供程序,并将遍历每个提供程序,直到成功发送电子邮件。 安装 将此行添加到应用程序的 Gemfile 中: gem "multi_smtp" 然后执行: $ bundle 配置 对于应该使用自动故障转移...
MailCatcher作为SMTP服务器,监听特定端口(默认1025),当你的应用程序尝试通过SMTP协议发送邮件时,MailCatcher会拦截这些邮件,而不是真正将其发送出去。邮件被截获后,其内容会被存储,并在Web界面中展示,包括...
从 Rails 应用程序发送邮件的简单应用程序。 应用程序使用以下内容: 行动邮件 使用 Gmail 和 Mailgun 的 SMTP Mailgun API 通过 mailgun-ruby 用于预览电子邮件的 Action Mailer Preview。
一个ActionMailer适配器,可使用SendGrid的HTTPS Web API(而不是SMTP)发送电子邮件。 与Rails 5和Sendgrid API v3兼容。 安装 将此行添加到您的应用程序的Gemfile中: gem 'sendgrid-actionmailer' 用法 为您的...
在config/environment.rb文件中,可以设置SMTP服务器的参数:config.action_mailer.smtp_settings。修改此文件后需要重新启动服务器。 备份: Redmine的备份应该包括数据(保存在redmine数据库中)和附件(保存在...
杀人犯 用于ActionMailer的 SMTP API集成。 请上查看该协议的详细信息... action_mailer . delivery_method = :smtp config . action_mailer . smtp_settings = { :user_name => 'UserName' , :password => 'Passwor
这个版本在RoR的历史中扮演着重要角色,引入了一些关键更新,包括ActiveRecord的性能提升、JSON编码的改进、Action Mailer的SMTP认证增强,以及对新版本的依赖库的支持。此外,4.2版引入了`active_record_forking`,...