Class | OpenWFE::EmailNotificationParticipant |
In: |
lib/openwfe/participants/enoparticipants.rb
|
Parent: | MailParticipant |
This participant is used to send an email notification.
It‘s perhaps better to use MailParticipant which is simpler to initialize. This class is anyway an extension of MailParticipant.
@engine.register_participant( 'eno', EmailNotificationParticipant.new( "googlemail.l.google.com", 25, "[email protected]", """Subject: test 0 0 : ${r:Time.new} 1 : ${f:customer_name} """))
And then, from the process definition :
class TestDefinition0 < OpenWFE::ProcessDefinition def make process_definition :name => "test0", :revision => "0" do sequence do set :field => 'email_target' do "[email protected]" end set :field => 'customer_name' do "Monsieur Toto" end participant :ref => 'eno' end end end end
The ‘template’ parameter may contain an instance of File instead of an instance of String.
@engine.register_participant( 'eno', EmailNotificationParticipant.new( "googlemail.l.google.com", 25, "[email protected]", File.new("path/to/my/mail/template.txt")))
You can also define the email template as a Ruby block :
p = EmailNotificationParticipant.new("googlemail.l.google.com", 25, "[email protected]") do | flowexpression, participant, workitem | # generally, only the workitem is used within a template s = "" # the header of the message s << "Subject: #{workitem.subject}\n\n" # then, the body workitem.attributes.each do |key, value| s << "- '#{k}' => '#{value}'\n" end s << "\ndone.\n" end
Note that the template integrates the subject and requires then a double newline before the message body.
Create a new email notification participant. Requires a mail server, port, a from address, and a mail message template
# File lib/openwfe/participants/enoparticipants.rb, line 217 217: def initialize ( 218: smtp_server, smtp_port, from_address, template=nil, &block) 219: 220: params = {} 221: params[:smtp_server] = smtp_server 222: params[:smtp_port] = smtp_port 223: params[:from_address] = from_address 224: 225: params[:template] = template if template 226: 227: super(params, &block) 228: end