Metadata-Version: 2.1
Name: cs.mailutils
Version: 20210306
Summary: functions and classes to work with email
Home-page: https://bitbucket.org/cameron_simpson/css/commits/all
Author: Cameron Simpson
Author-email: cs@cskk.id.au
License: GNU General Public License v3 or later (GPLv3+)
Description: Convenience functions and classes to work with email.
              - Cameron Simpson <cs@cskk.id.au>
        #
        
        *Latest release 20210306*:
        New RFC5322_DATE_TIME with format for datetime.strptime to emit an RFC5322 date-time token.
        
        ## Function `ismaildir(path)`
        
        Test if `path` points at a Maildir directory.
        
        ## Function `ismbox(path)`
        
        Open path and check that its first line begins with "From ".
        
        ## Function `ismhdir(path)`
        
        Test if `path` points at an MH directory.
        
        ## Class `Maildir(mailbox.Maildir,mailbox.Mailbox)`
        
        A faster Maildir interface.
        Trust os.listdir, don't fsync, etc.
        
        ### Method `Maildir.__getitem__(self, key)`
        
        Return a mailbox.Message loaded from the message with key `key`.
        The Message's .pathname property contains .keypath(key),
        the pathname to the message file.
        
        ### Method `Maildir.add(self, message, key=None)`
        
        Add a message to the Maildir.
        `message` may be an email.message.Message instance or a path to a file.
        
        ### Method `Maildir.as_mbox(self, fp, keys=None)`
        
        Transcribe the contents of this maildir in UNIX mbox format to the
        file `fp`.
        The optional iterable `keys` designates the messages to transcribe.
        The default is to transcribe all messages.
        
        ### Method `Maildir.flush(self)`
        
        Forget state.
        
        ### Method `Maildir.get_headers(self, key)`
        
        Return the headers of the specified message as
        
        ### Method `Maildir.get_message(self, key)`
        
        Return a mailbox.Message loaded from the message with key `key`.
        The Message's .pathname property contains .keypath(key),
        the pathname to the message file.
        
        ### Method `Maildir.iterheaders(self)`
        
        Yield (key, headers) from the Maildir.
        
        ### Method `Maildir.keypath(self, key)`
        
        Return the path to the message with maildir key `key`.
        
        ### Property `Maildir.msgmap`
        
        Scan the maildir, return key->message-info mapping.
        
        ### Method `Maildir.newkey(self)`
        
        Allocate a new key.
        
        ### Method `Maildir.open(self, key, mode='r')`
        
        Open the file storing the message specified by `key`.
        
        ### Method `Maildir.save_file(self, fp, key=None, flags='')`
        
        Save the contents of the file-like object `fp` into the Maildir.
        Return the key for the saved message.
        
        ### Method `Maildir.save_filepath(self, filepath, key=None, nolink=False, flags='')`
        
        Save the file specified by `filepath` into the Maildir.
        By default a hardlink is attempted unless `nolink` is supplied true.
        The optional `flags` is a string consisting of flag letters listed at:
          http://cr.yp.to/proto/maildir.html
        Return the key for the saved message.
        
        ### Method `Maildir.save_message(self, M, key=None, flags='')`
        
        Save the contents of the Message `M` into the Maildir.
        Return the key for the saved message.
        
        ## Function `make_maildir(path)`
        
        Create a new maildir at `path`.
        The path must not already exist.
        
        ## Function `Message(msgfile, headersonly=False)`
        
        Factory function to accept a file or filename and return an email.message.Message.
        
        ## Function `message_addresses(M, header_names)`
        
        Yield (realname, address) pairs from all the named headers.
        
        ## Function `modify_header(M, hdr, new_values, always=False)`
        
        Modify a Message `M` to change the value of the named header `hdr` to the new value `new_values` (a string or an interable of strings).
        If `new_values` is a string subclass, convert to a single element list.
        If `new_values` differs from the existing value or if `always`
        is true, save the old value as X-Old-`hdr`.
        Return a Boolean indicating whether the headers were modified.
        
        # Release Log
        
        
        
        *Release 20210306*:
        New RFC5322_DATE_TIME with format for datetime.strptime to emit an RFC5322 date-time token.
        
        *Release 20171231.1*:
        DISTINFO fix. No semantic changes.
        
        *Release 20171231*:
        Update imports, clean some lint. No semantic changes.
        
        *Release 20160828*:
        * Use "install_requires" instead of "requires" in DISTINFO.
        * modify_header: accept multiple header values.
        * Message factory function: open message files with errors="replace" because messages might have any arbitrary guff in them; accept the mangling that may occur.
        * Add new_message_id() and need_message_id().
        * Add message_references() to return related Message-IDs from Reply-To: and References: headers.
        * Python 2/3 portability fixes.
        * Assorted bugfixes and improvements.
        
        *Release 20150116.2*:
        Update PyPI metadata.
        
        *Release 20150116*:
        Initial PyPI release.
Keywords: python2,python3
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Description-Content-Type: text/markdown
