Отправить письмо от Redmine Plugin
Я пишу плагин Redmine. У меня уже есть модель, вид и контроллер на месте. Всякий раз, когда кто-то создает, обновляет или удаляет мою модель, я хочу отправить электронное письмо людям в определенной группе. (Подобно электронной почте, отправленной Redmine, когда кто-то создает или обновляет проблему) может кто-то, пожалуйста, дайте мне знать, что было бы лучшим способом сделать это? Спасибо!
1 ответов
Я знаю, что прошло 2 года с тех пор, как вы спросили, но у меня была та же проблема, и я понял, как отправить электронное письмо с моим плагином.
что вам нужно сделать для плагина с именем my_plugin:
1. Создайте модель, которая наследуется от Mailer.
Так что если я хочу Мейлер назвал MyPluginMailer :
- я создаю redmine_folder / plugins/my_plugin/app/models / my_plugin_mailer.rb
- я создаю класс MyPluginMailer, который наследует из redmine Mailer
вот так:
class MyPluginMailer < Mailer
end
2. Создайте метод для вызова почтовой программы.
скажем, я пишу плагин новостей для redmine. Я хочу отправить электронное письмо с резюме статьи, которую я отправил, чтобы пользователям не приходилось опрашивать плагин каждый раз, когда они хотят знать, есть ли что-то новое.
Я создаю метод в своем классе mailer:
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
вы можете вызвать этот метод в своем классе статьи в например after_create обратного вызова.
3. Создайте некоторые представления для метода.
Я обязательно создайте 2 разных файла:
- заканчивается.формат html.Эрб
- заканчивается.текст.Эрб
или redmine собирается сбой с исключением" шаблон не найден".
Итак, в моей папке redmine_folder / plugins / my_plugin / app / views/my_plugin_mailer/ I create
- on_new_article.формат html.Эрб
- on_new_article.текст.Эрб
в моей on_new_article.формат html.erb я пишу что-то вроде :
<h1><%= @article.title %></h1>
<p><%= @article.summary %></p>