【问题标题】:stop large size mails notification from a RubyGem停止来自 Ruby Gem 的大尺寸电子邮件通知
【发布时间】:2016-11-03 07:17:01
【问题描述】:

我正在开发一个 Rubygem ,基本上是 gem 发送电子邮件通知,但有时电子邮件太大,当客户收到它时,他们的应用程序崩溃了。

注意:gem 使用 ActionMailer 发送邮件

所以我想实现一种方法,如果 gem 的大小超过某个限制,则停止发送邮件,而是将此通知发送给客户端“内容太大而无法显示”。

我仍然是 Ruby on Rails 新手,我想创建一个方法,在发送邮件之前先检查邮件的大小,然后通过 if 条件查看是否可以发送,但我不知道在哪里实际开始。

【问题讨论】:

    标签: ruby-on-rails ruby email rubygems actionmailer


    【解决方案1】:

    我假设您的邮件大小正在增加,因为您在 ActionMailer 视图中循环呈现一些内容。

    因此,添加该限制的一种简单方法是检查您的集合中有多少元素。如果超过某个数字,则说“内容太大”,否则渲染所有内容。

    <% if @my_model.some_collection.size > 10 %>
      <p>Content is too large to be displayed.</p>
    <% else %>
      <%= @my_model.some_collection.each do |elem| %>
        # ...
      <% end %>
    <% end %>
    

    或者

    您可以使用其他 2 种方法来做到这一点:

    1. ActionMailer callbacks
    2. ActionMailer interceptors

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 2014-11-08
      • 2011-04-01
      相关资源
      最近更新 更多