停止来自 RubyGem 的大邮件通知
stop large size mails notification from a RubyGem
我正在开发 Rubygem ,基本上 gem 会发送电子邮件通知,但有时电子邮件太大,当客户端收到它时,他们的应用程序会崩溃。
注意:gem使用ActionMailer发送邮件
所以我想实现一种方法来阻止 gem 在邮件大小超过一定限制时发送邮件,而是将此通知发送给客户端 "Content is too large to be displayed"。
我还是 Ruby Rails 新手,我想创建一个方法,在发送邮件之前首先检查邮件的大小,然后通过一个 if 条件来查看它是否可以发送与否,但我不知道从哪里开始。
我假设您的邮件大小在增加,因为您在 ActionMailer
视图中循环呈现一些内容。
因此,添加该限制的一种简单方法是检查您的集合中有多少元素。如果超过某个数字,请说 "Content is too large" 否则渲染所有内容。
<% 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 种方法:
我正在开发 Rubygem ,基本上 gem 会发送电子邮件通知,但有时电子邮件太大,当客户端收到它时,他们的应用程序会崩溃。
注意:gem使用ActionMailer发送邮件
所以我想实现一种方法来阻止 gem 在邮件大小超过一定限制时发送邮件,而是将此通知发送给客户端 "Content is too large to be displayed"。
我还是 Ruby Rails 新手,我想创建一个方法,在发送邮件之前首先检查邮件的大小,然后通过一个 if 条件来查看它是否可以发送与否,但我不知道从哪里开始。
我假设您的邮件大小在增加,因为您在 ActionMailer
视图中循环呈现一些内容。
因此,添加该限制的一种简单方法是检查您的集合中有多少元素。如果超过某个数字,请说 "Content is too large" 否则渲染所有内容。
<% 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 种方法: