OfflineIMAP

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
OfflineIMAP
Original authorJohn Goerzen
DeveloperNicolas Sebrecht et al.
Initial release2002; 24 years ago (2002)
Stable release7.3.4 (August 3, 2021; 4 years ago (2021-08-03)) [±][1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPython
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix-like, Windows
    Available inEnglish
    TypeEmail synchronization
    LicenseGNU GPLv2+
    Websitewww.offlineimap.org

    OfflineIMAP is IMAP synchronization utility software, capable of synchronizing mail on IMAP server with local Maildir folder[2] or another server.

    Description

    [edit | edit source]

    The synchronization is performed bidirectionally between two endpoints ("Remote" and "Local" repositories).[3]

    OfflineIMAP accesses mail servers only via Internet Message Access Protocol. (It does not support Post Office Protocol, another popular way to get mail from a server.)[4] It works faster (though it is sensitive to connection's latency) and supports more advanced features than most mail clients.[5] A special mode for better handling the non-standard implementation of IMAP in Gmail may optionally be enabled in a configuration file.[6]

    When configured to store mail locally, OfflineIMAP uses the Maildir format.[3] Unix mail boxes support may be added in the future, though currently it is not implemented.[6]

    Configuration

    [edit | edit source]

    Several synchronization accounts, each consisting of Remote and Local repositories, may be defined in configuration file. Each repository is then configured separately, allowing to specify credentials and access method.[3]

    Filtering and translation

    [edit | edit source]

    OfflineIMAP is capable of filtering the folders of Remote repository, so that only partial synchronization would occur if needed. To use this capability one has to define the mask that would be matched against the list of folders with each synchronization. This is achieved by using Python's lambda capability; for example, to synchronize only "INBOX", "Sent Mail" and "Received" folders one should specify the following rule:[5]

    folderfilter = lambda foldername: foldername in ["INBOX", "Sent Mail", "Received"]
    

    Remaining folders' names may be altered (translated) using similar construct:[3]

    nametrans = lambda foldername: re.sub(
        "^Sent$", "root/Sent", re.sub("^(\[G.*ail\]|INBOX)", "root", foldername)
    )
    

    This technique may also be used to synchronize the content of an IMAP server to the folder of another server.[5]

    Limitations

    [edit | edit source]

    Each account has to use separate directory; otherwise the synchronization process may suffer from unexpected behavior or even data loss.[5]

    User interface

    [edit | edit source]

    OfflineIMAP provides several command-line interfaces, including interactive color curses-based, non-interactive console logging, and several yet less verbose modes.[3] Tk-based graphical user interface is also available.[5]

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ a b c d e Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ a b c d e Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).