Parent

Class/Module Index [+]

Quicksearch

Ruote::SmtpParticipant

A very stupid SMTP participant.

options

:template

@engine.register_participant(
  :no_good_notification,
  Ruote::SmtpParticipant,
  :server => 'smtp.example.com'
  :port => 25,
  :to => 'toto@example.com',
  :from => 'john@example.com',
  :notification => true,
  :template => "Subject: ${f:email_subject}\n\nno good.")

Process variable / workitem field substitution works the same as in process definitions (in this example, the workitem field email_subject will be used as the subject of the email...)

:to or workitem.fields

The target of the email is either given via the workitem field 'email_target', either by the option :to. The workitem field takes precedence if both are present.

This parameter/option may be either a single (string) email address, either an array of (string) email addresses.

final note : mail listener

This participant cannot read POP/IMAP accounts for you. You have to use a mail listener or get a web reply by placing a link in the message...

Public Class Methods

new(opts) click to toggle source
# File lib/ruote/part/smtp_participant.rb, line 83
def initialize (opts)

  @opts = opts.inject({}) { |h, (k, v)| h[k.to_s] = v; h }
end

Public Instance Methods

cancel(fei, flavour) click to toggle source
# File lib/ruote/part/smtp_participant.rb, line 108
def cancel (fei, flavour)

  # does nothing
  #
  # one variant could send a "cancellation email"
end
consume(workitem) click to toggle source
# File lib/ruote/part/smtp_participant.rb, line 88
def consume (workitem)

  to = workitem.fields['email_target'] || @opts['to']
  to = Array(to)

  text = render_template(
    @opts['template'],
    Ruote::Exp::FlowExpression.fetch(@context, workitem.fei.to_h),
    workitem)

  server = @opts['server'] || '127.0.0.1'
  port = @opts['port'] || 25

  Net::SMTP.start(server, port) do |smtp|
    smtp.send_message(text, @opts['from'] || 'ruote@example.org', *to)
  end

  reply_to_engine(workitem) if @opts['notification']
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.