module Sisimai::Order
Sisimai::Order
- Parent class for making optimized order list for calling MTA modules
Constants
- OrderE0
There are another patterns in the value of “Subject:” header of a bounce mail generated by the following MTA/ESP modules
- OrderE1
Fallback list: The following MTA/ESP modules is not listed
OrderE0
- Subject
The following order is decided by the first 2 words of Subject: header
Public Class Methods
another()
click to toggle source
@abstract Make MTA module list as a spare @return [Array] Ordered module list
# File lib/sisimai/order.rb, line 186 def another; return [OrderE0, OrderE1].flatten; end
default()
click to toggle source
@abstract Make default order of MTA modules to be loaded @return [Array] Default order list of MTA modules
# File lib/sisimai/order.rb, line 182 def default; return Sisimai::Lhost.index.map { |e| 'Sisimai::Lhost::' << e }; end
make(argv0 = '')
click to toggle source
@abstract Returns an MTA Order
decided by the first word of the “Subject”: header @param [String] argv0 Subject
header string @return [Array] Order
of MTA modules @since v4.25.4
# File lib/sisimai/order.rb, line 164 def make(argv0 = '') return [] if argv0.empty? argv0 = argv0.downcase.tr('_[] ', ' ').squeeze(' ').sub(/\A[ ]+/, '') words = argv0.split(/[ ]/, 3) if words[0].include?(':') # Undeliverable: ..., notify: ... first = argv0.split(':').shift else # Postmaster notify, returned mail, ... first = words.slice(0, 2).join('-') end first.delete!(':",*') return Subject[first] || [] end