Module: Gurgitate::Deliver
- Included in:
- Gurgitate
- Defined in:
- lib/gurgitate/deliver.rb,
lib/gurgitate/deliver/mh.rb,
lib/gurgitate/deliver/mbox.rb,
lib/gurgitate/deliver/maildir.rb
Defined Under Namespace
Modules: MBox, MH, Maildir Classes: MailboxFound
Instance Method Summary collapse
-
#save(mailbox) ⇒ Object
Saves a message to
mailbox
, after detecting what the mailbox’s format is.
Instance Method Details
#save(mailbox) ⇒ Object
Saves a message to mailbox
, after detecting what the mailbox’s format is.
- mailbox
-
A string containing the path of the mailbox to save the message to. If it is of the form “=mailbox”, it saves the message to
Maildir
/mailbox
. Otherwise, it simply saves the message to the filemailbox
.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/gurgitate/deliver.rb', line 27 def save(mailbox) if mailbox[0,1]=='=' and @maildir != nil then if @folderstyle == Maildir and mailbox !~ /^=\./ then mailbox["="]=@maildir+"/." else mailbox["="]=@maildir+"/" end end if mailbox[0,1] != '/' then log("Cannot save to relative filenames! Saving to spool file"); mailbox=spoolfile end begin [MBox,Maildir,MH].each do |mod| if mod::check_mailbox(mailbox) then extend mod raise MailboxFound end end # Huh, nothing could find anything. Oh well, # let's default to whatever's in @folderstyle. (I # guess we'll be making a new mailbox, eh?) if Module === @folderstyle then # # Careful we don't get the wrong instance variable folderstyle=@folderstyle extend folderstyle else # No hints from the user either. Let's guess! # I'll use the same heuristic that Postfix uses--if the # mailbox name ends with a /, then make it a Maildir, # otherwise make it a mail file if mailbox =~ /\/$/ then extend Maildir else extend MBox end end rescue MailboxFound # Don't need to do anything--we only have to worry # about it if there wasn't a mailbox there. nil end begin (mailbox) rescue SystemCallError self.log "Gack! Something went wrong: " + $!.to_s raise # exit 75 end end |