sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/

lib/sup/sent.rb (1242B) - raw

      1 module Redwood
      2 
      3 class SentManager
      4   include Redwood::Singleton
      5 
      6   attr_reader :source, :source_uri
      7 
      8   def initialize source_uri
      9     @source = nil
     10     @source_uri = source_uri
     11   end
     12 
     13   def source_id; @source.id; end
     14 
     15   def source= s
     16     raise FatalSourceError.new("Configured sent_source [#{s.uri}] can't store mail.  Correct your configuration.") unless s.respond_to? :store_message
     17     @source_uri = s.uri
     18     @source = s
     19   end
     20 
     21   def default_source
     22     @source = SentLoader.new
     23     @source_uri = @source.uri
     24     @source
     25   end
     26 
     27   def write_sent_message date, from_email, &block
     28     ::Thread.new do
     29       debug "store the sent message (locking sent source..)"
     30       @source.synchronize do
     31         @source.store_message date, from_email, &block
     32       end
     33       PollManager.poll_from @source
     34     end
     35   end
     36 end
     37 
     38 class SentLoader < MBox
     39   yaml_properties
     40 
     41   def initialize
     42     @filename = Redwood::SENT_FN
     43     File.open(@filename, "w") { } unless File.exist? @filename
     44     super "mbox://" + @filename, true, $config[:archive_sent]
     45   end
     46 
     47   def file_path; @filename end
     48 
     49   def to_s; 'sup://sent'; end
     50   def uri; 'sup://sent' end
     51 
     52   def id; 9998; end
     53   def labels; [:inbox, :sent]; end
     54   def default_labels; []; end
     55   def read?; true; end
     56 end
     57 
     58 end