Tag: ruby on rails 3动作管理器

在Rails中获取Mailer视图中的格式

在我的Rails应用程序中,我在我的Mailer视图中使用一种方法来创建一个链接,该链接根据格式参数是html还是text格式。 mailer_link_to( url, link_text, format ) 根据格式,它可以为html创建一个anchor 标签,或者只显示文本的url 。 所以对于每个Mailer方法,我有两个视图: myemail.html.erb myemail.text.erb 在myemail.html.erb ,我使用mailer_link_to( “http://ntwrkapp.com”, “ntwrk”, “html” ) 。 在myemail.text.erb我使用mailer_link_to( “http://ntwrkapp.com”, “ntwrk”, “text” ) 。 我想知道的是,如果我可以确定格式是什么,所以我不必复制自己这么多,每次都指定”html”或”text” 。 如果我在普通的视图/控制器中,我会做类似request.format事情但是request对象在Mailer视图中不可用。 谢谢!

rails 3电子邮件发送问题

我正在使用Rails 3并实现电子邮件发送function。 我不确定我的配置是否正确,但这是我的代码: 邮寄/ user_mailer.rb class UserMailer “user@gmail.com” def send_to(user) @user = user subject=’welcome !’ mail(:to=>’y.lan@gmail.com’, :subject=>subject, :content_type => “text/html”) mail.deliver end end 控制器 : def CarsController < BaseController … def register_finish UserMailer.send_to(user) end end 配置/ enviroment.rb config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => “smtp.googlemail.com”, :port => 532, :arguments => ‘-i’ :enable_starttls_auto => true […]

ActionMailer有时不发送?

我有一个问题,ActionMailer有时不发送电子邮件。 它是可重复的,并在某些时候影响某些人,虽然造成它的是一个谜。 虽然设置了config.action_mailer.raise_delivery_errors = true ,但它无声地失败。 它进入mail()例程,声称它已呈现模板: Rendered notifier/notify_comment.html.erb (0.9ms) 然后跳过交付并转移到下一个交付。 下一个渲染和交付没有问题。 当电子邮件发送时,它们也会打印到控制台,所以我可以看到它。 每封电子邮件的内容都相同,只有收件人不同。 我不明白为什么这会间歇性的。 我怎么去调试呢?

Rails HTML / TEXT UserMailer模板

目前,对于我的Rails 3邮件程序模板,我需要在views/user_mailer directory创建一个html和text版本。 为什么这有必要? 为什么rails不能查看html版本并自动将其格式化为text/plain版本?

Rails ActionMailer忽略environment.rb中的设置

我把我的ActionMailer配置放在我的config/environment.rb文件中,如下所示: MyApp::Application.initialize! MyApp::Application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: “smtp.elasticemail.com”, port: 2525, domain: “myapp.com”, authentication: “plain”, user_name: “my_username”, password: “my_password”, enable_starttls_auto: true } end 我的理解是,这是配置适用于所有环境的设置的正确方法。 这在开发中运行良好,但是当我部署到我的登台服务器(使用自定义config/environments/staging.rb配置文件)时,我在尝试传递邮件时遇到“连接被拒绝”错误。 staging.rb根本没有与邮件程序相关的设置。 所以我使用RAILS_ENV=staging rails c在登台服务器上启动了控制台,并且“puts Rails.application.config.action_mailer”显示我放在environment.rb中的设置确实生效了,但由于某种原因,ActionMailer不是使用它们。 通过实验,我发现将配置直接复制到staging.rb可以解决问题。 为什么这有必要? 如果rails控制台显示设置有效,为什么ActionMailer不使用它们? 深入挖掘,我看到我的邮件程序类的delivery_method未按预期设置: MyMailer.foo(Person.find(1)).delivery_method => #”localhost”, :port=>25, :domain=>”localhost.localdomain”, :user_name=>nil, :password=>nil, :authentication=>nil, :enable_starttls_auto=>true, :openssl_verify_mode=>nil, :ssl=>nil, :tls=>nil}>

如何在rails 3上拦截ActionMailer的消息?

我试图拦截我的rails(3.0.10)应用程序中的消息来修改正文。 虽然我能够找到一些关于如何做到这一点的信息,但似乎已经发生了变化,现在使用旧方法已经不再适用了。 我使用的代码如下所示: class Hook def self.delivering_email(message) message.subject = ‘Hook changed the subject’ end end ActionMailer::Base.register_interceptor(Hook) 发送电子邮件后,主题不会更改! 我还发现了一条推文 ,指出在消息上使用deliver方法时不会调用拦截器,但premailer-rails3 gem使用我使用的相同方法并且在那里工作(该插件特别提到它适用于deliver方法)! 我在这里没有想法,所以是什么导致了我的问题?

Rails 3邮件程序无法正常工作且未记录任何错误

我尝试了各种配置,但仍然无法在我的开发环境中从rails发送电子邮件。 我安装mailutils从命令行尝试这个,它工作,我收到了电子邮件(当然是垃圾邮件):echo test | mail -s主题user@example.com 这是我的配置: # Don’t care if the mailer can’t send config.action_mailer.raise_delivery_errors = true # still no logs about emails config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true # I can’t believe I have to add this option. Does it even exist? I found it on google. config.action_mailer.smtp_settings = { :enable_starttls_auto => true, […]

Rails – ActionMailer有时会在电子邮件内容之前显示附件?

我怎么能这样做,所以ActionMailer总是在消息的底部显示附件:HTML,TXT,附件…. 问题是这里的附件是一个文本文件: —-==_mimepart_4d8f976d6359a_4f0d15a519e35138763f4 Date: Sun, 27 Mar 2011 13:00:45 -0700 Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=x00_129999.olk14message Content-ID: 谢谢

无法在rails邮件视图中生成删除链接

在我看来,我有2个链接:一个用于编辑,一个用于编辑,一个用于销毁操作。 metod看起来像: def create_ticket(ticket) @ticket = ticket @edit = edit_ticket_url(@ticket, :host => “localhost:3000”, :guest_password => @ticket.guest_password) @destroy = ticket_url(@ticket, :host => “localhost:3000”, :guest_password => @ticket.guest_password) mail(:to => @ticket.email, :subject => @ticket.subject) 结束 在视图模板中: :delete %> 最后一个简单地获取路径而不是破坏项目。 怎么解决这个?

如何配置动作邮件程序(我应该注册域名)?

我正在使用Ruby on Rails创建一个简单的非营利性应用程序。 我必须设置以下设置才能通过Gmail发送电子邮件: Depot::Application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address:”smtp.gmail.com”, port:587, domain:”domain.of.sender.net”, authentication: “plain”, user_name:”dave”, password:”secret”, enable_starttls_auto: true } end 我对这些东西全新,并且不知道我应该做什么。 如果我有Gmail帐户,如何填充上面的设置? 我是否需要购买域名,可以从谷歌购买以使用上述设置? 在我的电脑上设置邮件服务器更好吗? 我看了这个教程,但据我了解,我仍然需要购买域名。 另外,正如这里所说: 设置电子邮件服务器是一个困难的过程,涉及许多不同的程序,每个程序都需要正确配置。 因为这和我的技能不佳,我正在寻找最简单的解决方案。 我已经阅读了rails action mailer 教程并了解了这些参数的用途,但Gmail和邮件服务器周围的内容根本不清楚。