wheneverを導入して毎日am9:00に下記の内容を管理者にメールで送信させる ・メールの件名には「公開済記事の集計結果」と設定 ・管理者のメールアドレスには[email protected]を設定
rails g mailer ArticleMailer
上記のコマンドで以下のものが実行できる。
application_mailer.rb
class ApplicationMailer < ActionMailer::Base
default from: '[email protected]'
layout 'mailer'
end
article_mailer.rb
class ArticleMailer < ApplicationMailer
def report_summary
@published_article_count = Article.published.count
@articles_published_at_yesterday = Article.published_at_yesterday
mail(to: '[email protected]', subject: '公開済記事の集計結果')
end
end
メール本文のviewを作成
app/views/article_mailer/report_summary.text.erb
公開済の記事数: <%= @published_article_count %>件
<% if @articles_published_at_yesterday.present? %>
昨日公開された記事数: <%= @articles_published_at_yesterday.count %>件
<% @articles_published_at_yesterday.each do |article| %>
タイトル: <%= article.title %>
公開日時: <%= l(article.published_at) %>
<% end %>
<% else %>
昨日公開された記事はありません
<% end %>
mailerのviewでHTMLタグなどを書かないこと
理由
他のViewファイル同様レイアウトファイルが指定されているから