我正在写一个Redmine插件。我已经有了模型、视图和控制器。每当有人创建、更新或删除我的模型时,我都想向特定组中的人发送电子邮件。(类似于当有人创建或更新问题时由 Redmine 发送的电子邮件)有人可以告诉我什么是最好的解决方法吗?谢谢!
问问题
2541 次
1 回答
15
我知道你问已经 2 年了,但我遇到了同样的问题,我想出了如何用我的插件发送电子邮件。
对于名为 my_plugin 的插件,您需要做的是:
1. 创建一个继承自 Mailer 的模型。
因此,如果我想要一个名为 MyPluginMailer 的邮件程序:
- 我创建 redmine_folder/plugins/my_plugin/app/models/my_plugin_mailer.rb
- 我创建了继承自 redmine Mailer 的 MyPluginMailer 类
像那样:
class MyPluginMailer < Mailer
end
2. 创建一个调用邮件程序的方法。
假设我正在为 redmine 编写一个新闻插件。我想发送一封电子邮件,总结我提交的文章,这样用户就不必在每次想知道是否有新内容时都轮询插件。
我在邮件程序类中创建了一个方法:
class MyPluginMailer < Mailer
def on_new_article(user_to_warn, article)
mail to: user_to_warn.email, subject: "New article: #{article.title}"
@article = article #So that @article will be available in the views.
end
end
例如,您可以在您的 Article 类中的 after_create 回调中调用此方法。
3. 为方法创建一些视图。
我必须创建 2 个不同的文件:
- my_method.html.erb
- my_method.text.erb
否则 redmine 将因“找不到模板”异常而崩溃。
所以在我的 redmine_folder/plugins/my_plugin/app/views/my_plugin_mailer/ 我创建
- on_new_article.html.erb
- on_new_article.text.erb
在我的 on_new_article.html.erb 中,我写了如下内容:
<h1><%= @article.title %></h1>
<p><%= @article.summary %></p>
于 2014-10-23T17:02:56.857 回答