GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Email::FolderType(3) User Contributed Perl Documentation Email::FolderType(3)

Email::FolderType - Email::FolderType - determine the type of a mail folder

version 0.814

  use Email::FolderType qw(folder_type);

  print folder_type "~/mymbox";     # prints 'Mbox'
  print folder_type "~/a_maildir/"; # prints 'Maildir'
  print folder_type "some_mh/.";    # prints 'MH'
  print folder_type "an_archive//"; # prints 'Ezmlm'

Provides a utility subroutine for detecting the type of a given mail folder.

Automatically detects what type of mail folder the path refers to and returns the name of that type.

It primarily bases the type on the suffix of the path given.

  Suffix | Type
 --------+---------
  /      | Maildir
  /.     | MH
  //     | Ezmlm

In case of no known suffix it checks for a known file structure. If that doesn't work out it defaults to "Mbox" although, if the "Mbox" matcher has been overridden or the default changed (see DEFAULT MATCHER below) then it will return undef.

Returns a list of all the matchers available to the system.

Currently the default matcher is "Mbox" and therefore it is always checked last and always returns 1.

If you really want to change this then you should override "Email::FolderType::Mbox::match" and/or change the variable $Email::FolderType::DEFAULT to be something other than 'Mbox'.

        use Email::FolderType;
        use Email::FolderType::Mbox;

        $Email::FolderType::DEFAULT = 'NewDefault';

    package Email::FolderType::Mbox;
    sub match { return (defined $_[0] && -f $_[0]) }

        package Email::FolderType::NewDefault;
        sub match { return (defined $_[0] && $_[0] =~ m!some crazy pattern!) }
        1;

"Email::FolderType" briefly flirted with a rather clunky "register_type" method for registering new matchers but, in retrospect that wasn't a great idea.

Instead, in this version we've reverted to a "Module::Pluggable" based system - any classes in the "Email::FolderType::" namespace will be interrogated to see if they have a c<match> method.

If they do then it will be passed the folder name. If the folder matches then the match function should return 1. For example ...

    package Email::FolderType::GzippedMbox;

    sub match {
        my $folder = shift;
        return (-f $folder && $folder =~ /.gz$/);
    }

    1;

These can even be defined inline ...

    #!perl -w

    use strict;
    use Email::Folder;
    use Email::LocalDelivery;

    # copy all mail from an IMAP folder
    my $folder = Email::Folder->new('imap://example.com'); # read INBOX
    for ($folder->messages) {
        Email::LocalDelivery->deliver($_->as_string, 'local_mbox');
    }

    package Email::FolderType::IMAP;

    sub match {
        my $folder = shift;
        return $folder =~ m!^imap://!;
    }

    1;

If there is demand for a compatability shim for the old "register_type" method then we can implement one. Really though, this is much better in the long run.

Simon Wistow <simon@thegestalt.org>

This software is copyright (c) 2005 by Simon Wistow.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2013-08-05 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.