Determine the command used to bounce a message based on a Hook instead of a configuration option. Instead of writing an external script that can send the message properly based on the recipient addresses, rely on a hook that can return the command based on the From header in the mail being bounced as well as the intended recipients. This is more in line with the sup philosophy.
The default is still to strip any -t from the sendmail command of the default account. Signed-off-by: Ben Walton <bwal...@artsci.utoronto.ca> --- lib/sup.rb | 1 - lib/sup/modes/thread-view-mode.rb | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/sup.rb b/lib/sup.rb index 76444c9..96510b2 100644 --- a/lib/sup.rb +++ b/lib/sup.rb @@ -207,7 +207,6 @@ else :confirm_top_posting => true, :discard_snippets_from_encrypted_messages => false, :default_attachment_save_dir => "", - :bounce_sendmail => "", } begin FileUtils.mkdir_p Redwood::BASE_DIR diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb index 8842e59..76a1d1e 100644 --- a/lib/sup/modes/thread-view-mode.rb +++ b/lib/sup/modes/thread-view-mode.rb @@ -24,6 +24,18 @@ Return value: None. The variable 'headers' should be modified in place. EOS + HookManager.register "bounce-command", <<EOS +Determines the command used to bounce a message. +Variables: + from: The From header of the message being bounced + (eg: likely _not_ your address). + to: The addresses you asked the message to be bounced to as an array. +Return value: + A string representing the command to pipe the mail into. This + should include the entire command except for the destination addresses, + which will be appended by sup. +EOS + register_keymap do |k| k.add :toggle_detailed_header, "Toggle detailed header", 'h' k.add :show_header, "Show full message header", 'H' @@ -184,9 +196,9 @@ EOS end end - cmd = case $config[:bounce_sendmail] + cmd = case HookManager.run "bounce-command", :from => m.from, :to => to when nil, /^$/ then defcmd - else $config[:bounce_sendmail] + else hookcmd end + ' ' + to.map { |t| t.email }.join(' ') bt = to.size > 1 ? "#{to.size} recipients" : to.to_s -- 1.6.3 _______________________________________________ sup-talk mailing list sup-talk@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-talk