Happy SE Life

IT業界で働いている人のブログです

Redmineプラグイン開発入門(4)メールを送信する方法

Redmineプラグインでメールを送信する方法

こんばんは。 寒い日が続きますね。こんな日は温かくして自宅でゴロゴロしています。 Redmineプラグインでメールを送信する方法をメモしておきます。 いいね!プラグインにメール通知機能を追加しましたので、その軌跡となります。 記事はプラグイン名=likeで書いています。

1. 専用のメール送信クラスを作成します。

Mailerクラスを継承して作成します。メールアドレスは.mailメソッドが使えます。

plugins\like\app\models\like_mailer.rb

class LikeMailer < Mailer
    def on_like(user_to, title, content)
        @title = title
        @content = content
        mail to: user_to.mail, subject: @title
    end
end

2. プレーンテキスト用とHTMLメール用の2つのviewを作成します。

views/クラス名/メソッド名でファイルを作成します。

plugins\like\app\views\like_mailer\on_like.text.erb

<%= @title %>
<%= @content %>

plugins\like\app\views\like_mailer\on_like.html.erb

<p><%= @title %></p>
<p><%= @content %></p>

3. 送信処理を書きます。

  1. で作成したメソッド+.deliverメソッドを呼びます。これでメールが送信されます。

plugins\like\app\controllers\like_controller.rb

user_to = User.find(user_id)
title = User.current.lastname + " liked your Ticket"
content = "本文を書きます"
# Send a mail
LikeMailer.on_like(user_to, title, content).deliver

以上となります。

参考になりましたら幸いです。ではまた。

github.com

it-managers-life.hatenablog.com