emacs - mu4e add offlineimap config file
authorPeng Li <seudut@gmail.com>
Wed, 14 Sep 2016 13:12:29 +0000 (21:12 +0800)
committerPeng Li <seudut@gmail.com>
Wed, 14 Sep 2016 13:12:29 +0000 (21:12 +0800)
emacs.d/config.org
miscellanea/offlineimap.conf [new file with mode: 0644]

index c33ddb5..4512ea7 100644 (file)
@@ -2416,6 +2416,14 @@ See [[https://www.emacswiki.org/emacs/GnusWindowLayout][GnusWindowLayout]]
   ;;                               (gnus-group-select-group "INBOX")))
 #+END_SRC
 
+* Mu4e
+** install
+#+BEGIN_SRC sh :results output replace
+  brew install offline-imap
+
+  cp /usr/local/etc/offlineimap.conf ~/.offlineimapr
+#+END_SRC
+
 * Gnu Plot
 Install =gnuplot= on Mac
 #+BEGIN_SRC sh
@@ -2469,7 +2477,7 @@ Use =gnuplot= on =Org-mode= file, see [[http://orgmode.org/worg/org-contrib/babe
 #+END_SRC
 
 * Entertainment
-** GnoGo
+** GnuGo
 Play Go in Emacs, gnugo xpm refert [[https://github.com/okanotor/dotemacs/blob/f95b774cb292d1169748bc0a62ba647bbd8c0652/etc/my-inits/my-inits-gnugo.el][to here]]. start at image display mode and grid mode
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package gnugo
diff --git a/miscellanea/offlineimap.conf b/miscellanea/offlineimap.conf
new file mode 100644 (file)
index 0000000..6f05dcc
--- /dev/null
@@ -0,0 +1,1141 @@
+# Offlineimap sample configuration file
+
+# This file documents *all* possible options and can be quite scary.
+# Looking for a quick start?  Take a look at offlineimap.conf.minimal.
+# More details can be found at http://www.offlineimap.org .
+
+##################################################
+# Overview
+##################################################
+
+# The default configuration file is "~/.offlineimaprc".
+#
+# OfflineIMAP ships with a file named "offlineimap.conf" that you should copy to
+# that location and then edit.
+#
+# OfflineIMAP also ships a file named "offlineimap.conf.minimal" that you can
+# also try.  It's useful if you want to get started with the most basic feature
+# set, and you can read about other features later with "offlineimap.conf".
+#
+# If you want to be XDG-compatible, you can put your configuration file into
+# "$XDG_CONFIG_HOME/offlineimap/config".
+
+##################################################
+# General definitions
+##################################################
+
+# NOTE 1: Settings generally support python interpolation. This means
+# values can contain python format strings which refer to other values
+# in the same section, or values in a special DEFAULT section. This
+# allows you for example to use common settings for multiple accounts:
+#
+# [Repository Gmail1]
+# trashfolder: %(gmailtrashfolder)s
+#
+# [Repository Gmail2]
+# trashfolder: %(gmailtrashfolder)s
+#
+# [DEFAULT]
+# gmailtrashfolder = [Gmail]/Papierkorb
+#
+# would set the trashfolder setting for your German Gmail accounts.
+
+# NOTE 2: Above feature implies that any '%' needs to be encoded as '%%'
+
+# NOTE 3: Any variable that is subject to the environment variables
+# ($NAME) and tilde (~username/~) expansions will receive tilde
+# expansion first and only after the environment variable will be
+# expanded in the resulting string. This behaviour is intentional
+# as it coincides with typical shell expansion strategy.
+
+# NOTE 4: multiple same-named sections.
+# The library used to parse the configuration file has known issue when multiple
+# sections have the same name. In such case, only the last section is considered.
+# It is strongly discouraged to have multiple sections with the same name.
+# See https://github.com/OfflineIMAP/offlineimap/issues/143 for more details.
+
+[general]
+
+# This specifies where OfflineIMAP is to store its metadata.
+# This directory will be created if it does not already exist.
+#
+# Tilde and environment variable expansions will be performed.
+#
+#metadata = ~/.offlineimap
+
+
+# This option stands in the [general] section.
+#
+# This variable specifies which accounts are defined. Separate them with commas.
+# Account names should be alphanumeric only. You will need to specify one
+# section per account below. You may not use "general" for an account name.
+#
+# Always use ASCII characters only.
+#
+accounts = Test
+
+
+# This option stands in the [general] section.
+#
+# Offlineimap can synchronize more than one account at a time. If you want to
+# enable this feature, set the below value to something greater than 1.  To
+# force it to synchronize only one account at a time, set it to 1.
+#
+# NOTE: if you are using autorefresh and have more than one account, you must
+# set this number to be >= to the number of accounts you have; since any given
+# sync run never "finishes" due to a timer, you will never sync your additional
+# accounts if this is 1.
+#
+#maxsyncaccounts = 1
+
+
+# This option stands in the [general] section.
+#
+# You can specify one or more user interface. OfflineIMAP will try the first in
+# the list, and if it fails, the second, and so forth.
+#
+# The pre-defined options are:
+# Blinkenlights -- A fancy (terminal) interface
+# TTYUI         -- a text-based (terminal) interface
+# Basic         -- Noninteractive interface suitable for cron'ing
+# Quiet         -- Noninteractive interface, generates no output
+#                  except for errors.
+# MachineUI     -- Interactive interface suitable for machine
+#                  parsing.
+#
+# See also offlineimapui(7)
+#
+# You can override this with a command-line option -u.
+#
+#ui = basic
+
+
+# This option stands in the [general] section.
+#
+# If you try to synchronize messages to a folder which the IMAP server
+# considers read-only, OfflineIMAP will generate a warning.  If you want
+# to suppress these warnings, set ignore-readonly to yes.  Read-only
+# IMAP folders allow reading but not modification, so if you try to
+# change messages in the local copy of such a folder, the IMAP server
+# will prevent OfflineIMAP from propagating those changes to the IMAP
+# server.  Note that ignore-readonly is UNRELATED to the "readonly"
+# setting which prevents a repository from being modified at all.
+#
+#ignore-readonly = no
+
+
+########## Advanced settings
+
+# This option stands in the [general] section.
+#
+# You can give a Python source filename here and all config file
+# python snippets will be evaluated in the context of that file.
+# This allows you to e.g. define helper functions in the Python
+# source file and call them from this config file.  You can find
+# an example of this in the manual.
+#
+# Tilde and environment variable expansions will be performed.
+#
+#pythonfile = ~/.offlineimap.py
+
+
+# This option is in the [general] section.
+#
+# By default, OfflineIMAP will not exit due to a network error until the
+# operating system returns an error code.  Operating systems can sometimes take
+# forever to notice this.  Here you can activate a timeout on the socket.  This
+# timeout applies to individual socket reads and writes, not to an overall sync
+# operation.  You could perfectly well have a 30s timeout here and your sync
+# still take minutes.
+#
+# Values in the 30-120 second range are reasonable.
+#
+# The default is to have no timeout beyond the OS.  Times are given in seconds.
+#
+#socktimeout = 60
+
+
+# This option stands in the [general] section.
+#
+# By default, OfflineIMAP will use fsync() to force data out to disk at
+# opportune times to ensure consistency.  This can, however, reduce performance.
+# Users where /home is on SSD (Flash) may also wish to reduce write cycles.
+# Therefore, you can disable OfflineIMAP's use of fsync().  Doing so will come
+# at the expense of greater risk of message duplication in the event of a system
+# crash or power loss.  Default is true.  Set it to false to disable fsync.
+#
+#fsync = true
+
+
+##################################################
+# Mailbox name recorder
+##################################################
+
+[mbnames]
+
+# OfflineIMAP can record your mailbox names in a format you specify.
+# You can define the header, each mailbox item, the separator,
+# and the footer.  Here is an example for Mutt.
+# If enabled is yes, all six setting must be specified, even if they
+# are just the empty string "".
+#
+# The header, peritem, sep, and footer are all Python expressions passed
+# through eval, so you can (and must) use Python quoting.
+#
+# The incremental setting controls whether the file is written after each
+# account completes or once all synced accounts are complete. This is usefull if
+# an account is sightly slower than the other. It allows keeping the previous
+# file rather than having it partially written.
+# This works best with "no" if in one-shot mode started by cron or systemd
+# timers. Default: no.
+#
+# The following hash key are available to the expansion for 'peritem':
+# - accountname: the name of the corresponding account;
+# - foldername: the name of the folder;
+# - localfolders: path to the local directory hosting all Maildir
+#   folders for the account.
+#
+# Tilde and environment variable expansions will be performed
+# for "filename" knob.
+#
+#enabled = no
+#filename = ~/Mutt/muttrc.mailboxes
+#header = "mailboxes "
+#peritem = "+%(accountname)s/%(foldername)s"
+#sep = " "
+#footer = "\n"
+#incremental = no
+
+
+# This option stands in the [mbnames] section.
+#
+# You can also specify a folderfilter.  It will apply to the *translated* folder
+# name here, and it takes TWO arguments: accountname and foldername.  In all
+# other ways, it will behave identically to the folderfilter for accounts.
+# Please see the folderfilter option for more information and examples.
+#
+# This filter can be used only to further restrict mbnames to a subset of
+# folders that pass the account's folderfilter.
+#
+# You can customize the order in which mailbox names are listed in the generated
+# file by specifying a sort_keyfunc, which takes a single dict argument
+# containing keys 'accountname' and 'foldername'.  This function will be called
+# once for each mailbox, and should return a suitable sort key that defines this
+# mailbox' position in the custom ordering.
+#
+# This is useful with e.g. Mutt-sidebar, which uses the mailbox order from the
+# generated file when listing mailboxes in the sidebar.
+#
+# Default setting is:
+#sort_keyfunc = lambda d: (d['accountname'], d['foldername'])
+
+
+##################################################
+# Accounts
+##################################################
+
+# This is an account definition clause.  You'll have one of these for each
+# account listed in the "accounts" option in [general] section (above).
+
+[Account Test]
+
+# These settings specify the two folders that you will be syncing.
+# You'll need to have a "Repository ..." section for each one.
+
+localrepository = LocalExample
+remoterepository = RemoteExample
+
+
+########## Advanced settings
+
+# This option stands in the [Account Test] section.
+#
+# You can have OfflineIMAP continue running indefinitely, automatically syncing
+# your mail periodically.  If you want that, specify how frequently to do that
+# (in minutes) here.  Fractional minutes (ie, 3.25) is allowed.
+#
+#autorefresh = 5
+
+
+# This option stands in the [Account Test] section.
+#
+# OfflineImap can replace a number of full updates by quick synchronizations.
+# This option is ignored if maxage or startdate are used.
+#
+# It only synchronizes a folder if
+#
+#   1) a Maildir folder has changed
+#
+# or
+#
+#   2) if an IMAP folder has received new messages or had messages deleted, ie
+#   it does not update if only IMAP flags have changed.
+#
+# Full updates need to fetch ALL flags for all messages, so this makes quite a
+# performance difference (especially if syncing between two IMAP servers).
+#
+# Specify 0 for never, -1 for always (works even in non-autorefresh mode)
+#
+# A positive integer <n> to do <n> quick updates before doing another full
+# synchronization (requires autorefresh).  Updates are always performed after
+# <autorefresh> minutes, be they quick or full.
+#
+#quick = 10
+
+
+# This option stands in the [Account Test] section.
+#
+# You can specify a pre and post sync hook to execute a external command.  In
+# this case a call to imapfilter to filter mail before the sync process starts
+# and a custom shell script after the sync completes.
+#
+# The pre sync script has to complete before a sync to the account will start.
+#
+#presynchook = imapfilter -c someotherconfig.lua
+#postsynchook = notifysync.sh
+
+
+# This option stands in the [Account Test] section.
+#
+# You can specify a newmail hook to execute an external command upon receipt
+# of new mail in the INBOX.
+#
+# This example plays a sound file of your chosing when new mail arrives.
+#
+#newmail_hook = lambda: os.system("cvlc --play-and-stop --play-and-exit /path/to/sound/file.mp3" +
+#                               " > /dev/null 2>&1")
+
+
+# This option stands in the [Account Test] section.
+#
+# OfflineImap caches the state of the synchronisation to e.g. be able to
+# determine if a mail has been added or deleted on either side.
+#
+# The default and historical backend is 'plain' which writes out the
+# state in plain text files. On Repositories with large numbers of
+# mails, the performance might not be optimal, as we write out the
+# complete file for each change.  Another new backend 'sqlite' is
+# available which stores the status in sqlite databases.
+#
+# If you switch the backend, you may want to delete the old cache
+# directory in ~/.offlineimap/Account-<account>/LocalStatus manually
+# once you are sure that things work.
+#
+#status_backend = plain
+
+
+# This option stands in the [Account Test] section.
+#
+# If you have a limited amount of bandwidth available you can exclude larger
+# messages (e.g. those with large attachments etc).  If you do this it will
+# appear to OfflineIMAP that these messages do not exist at all.  They will not
+# be copied, have flags changed etc.  For this to work on an IMAP server the
+# server must have server side search enabled.  This works with Gmail and most
+# imap servers (e.g. cyrus etc)
+#
+# The maximum size should be specified in bytes - e.g. 2000000 for approx 2MB
+#
+#maxsize = 2000000
+
+
+# This option stands in the [Account Test] section.
+#
+# maxage enables you to sync only recent messages. There are two ways to specify
+# what "recent" means: if maxage is given as an integer, then only messages from
+# the last maxage days will be synced. If maxage is given as a date, then only
+# messages later than that date will be synced.
+#
+# Messages older than the cutoff will not be synced, their flags will not be
+# changed, they will not be deleted, etc. For OfflineIMAP it will be like these
+# messages do not exist. This will perform an IMAP search in the case of IMAP or
+# Gmail and therefore requires that the server support server side searching.
+#
+# Known edge cases are described in offlineimap(1).
+#
+# maxage is allowed only when the local folder is of type Maildir. It can't be
+# used with startdate.
+#
+# The maxage option expects an integer (for the number of days) or a date of the
+# form yyyy-mm-dd.
+#
+#maxage = 3
+#maxage = 2015-04-01
+
+
+# This option stands in the [Account Test] section.
+#
+# Maildir file format uses colon (:) separator between uniq name and info.
+# Unfortunatelly colon is not allowed character in windows file name. If you
+# enable maildir-windows-compatible option, OfflineIMAP will be able to store
+# messages on windows drive, but you will probably loose compatibility with
+# other programs working with the maildir.
+#
+#maildir-windows-compatible = no
+
+
+# This option stands in the [Account Test] section.
+#
+# Specifies if we want to sync GMail labels with the local repository.
+# Effective only for GMail IMAP repositories.
+#
+# Non-ASCII characters in labels are bad handled or won't work at all.
+#
+#synclabels = no
+
+
+# This option stands in the [Account Test] section.
+#
+# Name of the header to use for label storage.  Format for the header
+# value differs for different headers, because there are some de-facto
+# "standards" set by popular clients:
+#
+# - X-Label or Keywords keep values separated with spaces; for these
+#   you, obviously, should not have label values that contain spaces;
+#
+# - X-Keywords use comma (',') as the separator.
+#
+# To be consistent with the usual To-like headers, for the rest of header
+# types we use comma as the separator.
+#
+# Use ASCII characters only.
+#
+#labelsheader = X-Keywords
+
+
+# This option stands in the [Account Test] section.
+#
+# Set of labels to be ignored.  Comma-separated list.  GMail-specific
+# labels all start with backslash ('\').
+#
+# Use ASCII characters only.
+#
+#ignorelabels = \Inbox, \Starred, \Sent, \Draft, \Spam, \Trash, \Important
+
+
+# This option stands in the [Account Test] section.
+#
+# OfflineIMAP can strip off some headers when your messages are propagated
+# back to the IMAP server.  This option carries the comma-separated list
+# of headers to trim off.  Header name matching is case-sensitive.
+#
+# This knob is respected only by IMAP-based accounts.  Value of labelsheader
+# for GMail-based accounts is automatically added to this list, you don't
+# need to specify it explicitely.
+#
+# Use ASCII characters only.
+#
+#filterheaders = X-Some-Weird-Header
+
+
+# This option stands in the [Account Test] section.
+#
+# Use proxy connection for this account. Usefull to bypass the GFW in China.
+# To specify a proxy connection, join proxy type, host and port with colons.
+# Available proxy types are SOCKS5, SOCKS4, HTTP.
+# You also need to install PySocks through pip.
+#
+# Currently, this feature leaks DNS support.
+#
+#proxy = SOCKS5:IP:9999
+
+[Repository LocalExample]
+
+# Each repository requires a "type" declaration. The types supported for
+# local repositories are Maildir, GmailMaildir and IMAP.
+#
+type = Maildir
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# Specify local repository.  Your IMAP folders will be synchronized
+# to maildirs created under this path.  OfflineIMAP will create the
+# maildirs for you as needed.
+#
+localfolders = ~/Test
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# You can specify the "folder separator character" used for your Maildir
+# folders.  It is inserted in-between the components of the tree. If you
+# want your folders to be nested directories, set it to "/". 'sep' is
+# ignored for IMAP repositories, as it is queried automatically.
+# Otherwise, default value is ".".
+#
+# Don't use quotes.
+#
+#sep = .
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# startdate syncs mails starting from a given date. It applies the date
+# restriction to LocalExample only. The remote repository MUST be empty
+# at the first sync where this option is used.
+#
+# Unlike maxage, this is supported for IMAP-IMAP sync.
+#
+# startdate can't be used with maxage.
+#
+# The startdate option expects a date in the format yyyy-mm-dd.
+#
+#startdate = 2015-04-01
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# Some users may not want the atime (last access time) of folders to be
+# modified by OfflineIMAP.  If 'restoreatime' is set to yes, OfflineIMAP
+# will restore the atime of the "new" and "cur" folders in each maildir
+# folder to their original value after each sync.
+#
+# In nearly all cases, the default should be fine.
+#
+#restoreatime = no
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# Set modification time of messages basing on the message's "Date" header. This
+# option makes sense for the Maildir type, only.
+#
+# This is useful if you are doing some processing/finding on your Maildir (for
+# example, finding messages older than 3 months), without parsing each
+# file/message content.
+#
+# If enabled, this forbid the -q (quick mode) CLI option to work correctly.
+#
+# Default: no.
+#
+#utime_from_header = no
+
+
+# This option stands in the [Repository LocalExample] section.
+#
+# This option is similar to "utime_from_header" and could be use as a
+# complementary feature to keep track of a message date. This option only
+# makes sense for the Maildir type.
+#
+# By default each message is stored in a file which prefix is the fetch
+# timestamp and an order rank such as "1446590057_0". In a multithreading
+# environment message are fetched in a random order, then you can't trust
+# the file name to sort your boxes.
+#
+# If set to "yes" the file name prefix if build on the message "Date" header
+# (which should be present) or the "Received-date" if "Date" is not
+# found. If neither "Received-date" nor "Date" is found, the current system
+# date is used.  Now you can quickly sort your messages using their file
+# names.
+#
+# Used in combination with "utime_from_header" all your message would be in
+# order with the correct mtime attribute.
+#
+#filename_use_mail_timestamp = no
+
+# This option stands in the [Repository LocalExample] section.
+#
+# Map IMAP [user-defined] keywords to lowercase letters, similar to Dovecot's
+# format described in http://wiki2.dovecot.org/MailboxFormat/Maildir . This
+# option makes sense for the Maildir type, only.
+#
+# Configuration example:
+#      customflag_x = some_keyword
+#
+# With the configuration example above enabled, all IMAP messages that have
+# 'some_keyword' in their FLAGS field will have an 'x' in the flags part of the
+# maildir filename:
+#      1234567890.M20046P2137.mailserver,S=4542,W=4642:2,Sx
+#
+# Valid fields are customflag_[a-z], valid values are whatever the IMAP server
+# allows.
+#
+# Comparison in offlineimap is case-sensitive.
+#
+#customflag_a = some_keyword
+#customflag_b = $OtherKeyword
+#customflag_c = NonJunk
+#customflag_d = ToDo
+
+[Repository GmailLocalExample]
+
+# This type of repository enables syncing of Gmail. All Maildir
+# configuration settings are also valid here.
+#
+# This is a separate Repository type from Maildir because it involves
+# some extra overhead which sometimes may be significant.  We look for
+# modified tags in local messages by looking only to the files
+# modified since last run.  This is usually rather fast, but the first
+# time OfflineIMAP runs with synclabels enabled, it will have to check
+# the contents of all individual messages for labels and this may take
+# a while.
+#
+type = GmailMaildir
+
+
+[Repository RemoteExample]
+
+# The remote repository.  We only support IMAP or Gmail here.
+#
+type = IMAP
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Configure which address family to use for the connection. If not specified,
+# AF_UNSPEC is used as a fallback (default).
+#
+# AF_INET6:
+#ipv6 = True
+#
+# AF_INET:
+#ipv6 = False
+
+
+# These options stands in the [Repository RemoteExample] section.
+#
+# The following can fetch the account credentials via a python expression that
+# is parsed from the pythonfile parameter. For example, a function called
+# "getcredentials" that parses a file "filename" and returns the account
+# details for "hostname".
+#
+#remotehosteval = getcredentials("filename", "hostname", "hostname")
+#remoteporteval = getcredentials("filename", "hostname", "port")
+#remoteusereval = getcredentials("filename", "hostname", "user")
+#remotepasseval = getcredentials("filename", "hostname", "passwd")
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify the remote hostname.
+#
+remotehost = examplehost
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Whether or not to use SSL.
+#
+# Note: be care to configure the 'remotehost' line with the domain name defined
+# in the certificate. E.g., if you trust your provider and want to use the
+# certificate it provides on a shared server. Otherwise, OfflineIMAP will stop
+# and say that the domain is not named in the certificate.
+#
+#ssl = yes
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# SSL Client certificate (optional).
+#
+# Tilde and environment variable expansions will be performed.
+#
+#sslclientcert = /path/to/file.crt
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# SSL Client key (optional).
+#
+# Tilde and environment variable expansions will be performed.
+#
+#sslclientkey = /path/to/file.key
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# SSL CA Cert(s) to verify the server cert against (optional).
+# No SSL verification is done without this option. If it is
+# specified, the CA Cert(s) need to verify the Server cert AND
+# match the hostname (* wildcard allowed on the left hand side)
+# The certificate should be in PEM format.
+#
+# Tilde and environment variable expansions will be performed.
+#
+# Special value OS-DEFAULT makes OfflineIMAP to automatically
+# determine system-wide location of standard trusted CA roots file
+# for known OS distributions and use the first bundle encountered
+# (if any).  If no system-wide CA bundle is found, OfflineIMAP
+# will refuse to continue; this is done to prevent creation
+# of false security expectations ("I had configured CA bundle,
+# thou certificate verification shalt be present").
+#
+# You can also use fingerprint verification via cert_fingerprint.
+# See below for more verbose explanation.
+#
+#sslcacertfile = /path/to/cacertfile.crt
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# If you connect via SSL/TLS (ssl = yes) and you have no CA certificate
+# specified, OfflineIMAP will refuse to sync as it connects to a server
+# with an unknown "fingerprint". If you are sure you connect to the
+# correct server, you can then configure the presented server
+# fingerprint here. OfflineIMAP will verify that the server fingerprint
+# has not changed on each connect and refuse to connect otherwise.
+#
+# You can also configure fingerprint validation in addition to
+# CA certificate validation above and it will check both:
+# OfflineIMAP fill verify certificate first and if things will be fine,
+# fingerprint will be validated.
+#
+# Multiple fingerprints can be specified, separated by commas.
+#
+# In Windows, Microsoft uses the term "thumbprint" instead of "fingerprint".
+#
+# Fingerprints must be in hexadecimal form without leading '0x':
+# 40 hex digits like bbfe29cf97acb204591edbafe0aa8c8f914287c9.
+#
+#cert_fingerprint = <SHA1_of_server_certificate_here>[, <another_SHA1>]
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Set SSL version to use (optional).
+#
+# It is best to leave this unset, in which case the correct version will be
+# automatically detected. In rare cases, it may be necessary to specify a
+# particular version from: tls1, ssl2, ssl3, ssl23.
+#
+# ssl23 is the highest protocol version that both the client and server support.
+# Despite the name, this option can select “TLS” protocols as well as “SSL”.
+#
+# See the configuration option tls_level to automatically disable insecure
+# protocols.
+#
+#ssl_version = ssl23
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# TLS support level (optional).
+#
+# Specify the level of support that should be allowed for this repository.
+# Can be used to disallow insecure SSL versions as defined by IETF
+# (see https://tools.ietf.org/html/rfc6176).
+#
+# Supported values are:
+# tls_secure, tls_no_ssl, tls_compat (the default).
+#
+#tls_level = tls_compat
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify the port.  If not specified, use a default port.
+#
+#remoteport = 993
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify the remote user name.
+#
+remoteuser = username
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify the user to be authorized as.  Sometimes we want to
+# authenticate with our login/password, but tell the server that we
+# really want to be treated as some other user; perhaps server will
+# allow us to do that (or maybe not).  Some IMAP servers migrate
+# account names using this functionality: your credentials remain
+# intact, but remote identity changes.
+#
+# Currently this variable is used only for SASL PLAIN authentication
+# mechanism, so consider using auth_mechanisms to prioritize PLAIN
+# or even make it the only mechanism to be tried.
+#
+#remote_identity = authzuser
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify which authentication/authorization mechanisms we should try and the
+# order in which OfflineIMAP will try them.
+#
+# NOTE: any given mechanism will be tried ONLY if it is supported by the remote
+# IMAP server.
+#
+# Default value is ranged is from strongest to more weak ones. Due to technical
+# limitations, if GSSAPI is set, it will be tried first, no matter where it was
+# specified in the list.
+#
+#auth_mechanisms = GSSAPI, CRAM-MD5, XOAUTH2, PLAIN, LOGIN
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# XOAuth2 authentication (for instance, to use with Gmail).
+#
+# This option was tested on Gmail only, but should work
+# with type = IMAP for compatible servers.
+#
+# Mandatory parameters are "oauth2_client_id", "oauth2_client_secret" and
+# either "oauth2_refresh_token" or "oauth2_access_token".
+# See below to learn how to get those.
+#
+# Specify the OAuth2 client id and secret to use for the connection..
+# Here's how to register an OAuth2 client for Gmail, as of 10-2-2016:
+#    - Go to the Google developer console
+#         https://console.developers.google.com/project
+#    - Create a new project
+#    - In API & Auth, select Credentials
+#    - Setup the OAuth Consent Screen
+#    - Then add Credentials of type OAuth 2.0 Client ID
+#    - Choose application type Other; type in a name for your client
+#    - You now have a client ID and client secret
+#
+#oauth2_client_id = YOUR_CLIENT_ID
+#oauth2_client_secret = YOUR_CLIENT_SECRET
+
+# Specify the refresh token to use for the connection to the mail server.
+# Here's an example of a way to get a refresh token:
+#    - Clone this project: https://github.com/google/gmail-oauth2-tools
+#    - Type the following command-line in a terminal and follow the instructions
+#         python python/oauth2.py --generate_oauth2_token \
+#            --client_id=YOUR_CLIENT_ID --client_secret=YOUR_CLIENT_SECRET
+#    - Access token can be obtained using refresh token with command
+#         python python/oauth2.py --user=YOUR_EMAIL --client_id=YOUR_CLIENT_ID
+#            --client_secret=YOUR_CLIENT_SECRET --refresh_token=REFRESH_TOKEN
+#
+#oauth2_refresh_token = REFRESH_TOKEN
+#oauth2_access_token = ACCESS_TOKEN
+
+########## Passwords
+
+# There are six ways to specify the password for the IMAP server:
+#
+# 1. No password at all specified in the config file.
+#    If a matching entry is found in ~/.netrc (see netrc (5) for
+#    information) this password will be used. Do note that netrc only
+#    allows one entry per hostname. If there is no ~/.netrc file but
+#    there is an /etc/netrc file, the password will instead be taken
+#    from there. Otherwise you will be prompted for the password when
+#    OfflineIMAP starts when using a UI that supports this.
+#
+# 2. The remote password stored in this file with the remotepass
+#    option. Any '%' needs to be encoded as '%%'. Example:
+#    remotepass = mypassword
+#
+# 3. The remote password stored as a single line in an external
+#    file, which is referenced by the remotefile option.  Example:
+#    remotepassfile = ~/Password.IMAP.Account1
+#
+# 4. With a preauth tunnel.  With this method, you invoke an external
+#    program that is guaranteed *NOT* to ask for a password, but rather
+#    to read from stdin and write to stdout an IMAP procotol stream that
+#    begins life in the PREAUTH state.  When you use a tunnel, you do
+#    NOT specify a user or password (if you do, they'll be ignored.)
+#    Instead, you specify a preauthtunnel, as this example illustrates
+#    for Courier IMAP on Debian:
+#    preauthtunnel = ssh -q imaphost '/usr/bin/imapd ./Maildir'
+#
+# 5. If you are using Kerberos and have the Python Kerberos package
+#    installed, you should not specify a remotepass.  If the user has a
+#    valid Kerberos TGT, OfflineIMAP will figure out the rest all by
+#    itself, and fall back to password authentication if needed.
+#
+# 6. Using arbitrary python code.  With this method, you invoke a
+#    function from your pythonfile.  To use this method assign the name
+#    of the function to the variable 'remotepasseval'.  Example:
+#    remotepasseval = get_password("imap.example.net")
+#    You can also query for the username:
+#    remoteusereval = get_username("imap.example.net")
+#    This method can be used to design more elaborate setups, e.g. by
+#    querying the gnome-keyring via its python bindings.
+
+
+########## Advanced settings
+
+
+# These options stands in the [Repository RemoteExample] section.
+#
+# Tunnels. There are two types:
+#
+# - preauth: they teleport your connection to the remote system
+#   and you don't need to authenticate yourself there; the sole
+#   fact that you succeeded to get the tunnel running is enough.
+#   This tunnel type was explained above in the 'Passwords' section.
+#
+# - transport: the just provide the transport (probably encrypted)
+#   to the IMAP server, but you still need to authenticate at the
+#   IMAP server.
+#
+# Tunnels are currently working only with IMAP servers and their
+# derivatives (GMail currently).  Additionally, for GMail accounts
+# preauth tunnel settings are ignored: we don't believe that there
+# are ways to preauthenticate at Google mail system IMAP servers.
+#
+# You must choose at most one tunnel type, be wise M'Lord!
+#
+#preauthtunnel = ssh -q imaphost '/usr/bin/imapd ./Maildir'
+#transporttunnel = openssl s_client -host myimap -port 993 -quiet
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Some IMAP servers need a "reference" which often refers to the "folder root".
+#
+# This is most commonly needed with UW IMAP, where you might need to specify the
+# directory in which your mail is stored. The 'reference' value will be prefixed
+# to all folder paths refering to that repository. E.g. accessing folder 'INBOX'
+# with "reference = Mail" will try to access Mail/INBOX.
+#
+# The nametrans and folderfilter functions will apply to the full path,
+# including the reference prefix.  Most users will not need this.
+#
+#reference = Mail
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# IMAP defines an encoding for non-ASCII ("international") characters. Enable
+# this option if you want to decode them to the nowadays ubiquitous UTF-8.
+#
+# Note that the IMAP 4rev1 specification (RFC 3501) allows both UTF-8 and
+# modified UTF-7 folder names.
+#
+# WARNING: with this option enabled:
+# - compatibility with any other version is NOT GUARANTED (including newer);
+# - no support is provided.
+#
+#decodefoldernames = no
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# In between synchronisations, OfflineIMAP can monitor mailboxes for new
+# messages using the IDLE command. If you want to enable this, specify here the
+# folders you wish to monitor. IMAP protocol requires a separate connection for
+# each folder monitored in this way, so setting this option will force settings
+# for:
+#
+#  - maxconnections: to be at least the number of folders you give
+#  - holdconnectionopen: to be true
+#  - keepalive: to be 29 minutes unless you specify otherwise
+#
+# This feature isn't complete and may well have problems. See the "Known Issues"
+# entry in the manual for more details.
+#
+# This option should return a Python list. For example
+#
+#idlefolders = ['INBOX', 'INBOX.Alerts']
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# OfflineIMAP can use a compressed connection to the IMAP server.
+# This can result in faster downloads for some cases.
+#
+#usecompression = yes
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# OfflineIMAP can use multiple connections to the server in order
+# to perform multiple synchronization actions simultaneously.
+# This may place a higher burden on the server.  In most cases,
+# setting this value to 2 or 3 will speed up the sync, but in some
+# cases, it may slow things down.  The safe answer is 1.  You should
+# probably never set it to a value more than 5.
+#
+#maxconnections = 2
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# OfflineIMAP normally closes IMAP server connections between refreshes if
+# the global option autorefresh is specified.  If you wish it to keep the
+# connection open, set this to true.  If not specified, the default is
+# false.  Keeping the connection open means a faster sync start the
+# next time and may use fewer server resources on connection, but uses
+# more server memory.  This setting has no effect if autorefresh is not set.
+#
+#holdconnectionopen = no
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# If you want to have "keepalives" sent while waiting between syncs, specify the
+# amount of time IN SECONDS between keepalives here.  Note that sometimes more
+# than this amount of time might pass, so don't make it tight.  This setting has
+# no effect if autorefresh and holdconnectionopen are not both set.
+#
+#keepalive = 60
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Normally, OfflineIMAP will expunge deleted messages from the server.  You can
+# disable that if you wish.  This means that OfflineIMAP will mark them deleted
+# on the server, but not actually delete them.  You must use some other IMAP
+# client to delete them if you use this setting; otherwise, the messages will
+# just pile up there forever.  Therefore, this setting is definitely NOT
+# recommended for a long term.
+#
+#expunge = no
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Specify whether to process all mail folders on the server, or only
+# those listed as "subscribed".
+#
+#subscribedonly = no
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# You can specify a folder translator.  This must be a eval-able.
+#
+# Python expression that takes a foldername arg and returns the new value. A
+# lambda function is suggested.
+#
+# WARNING: you MUST construct it so that it NEVER returns the same value for two
+# folders, UNLESS the second values are filtered out by folderfilter below.
+# Failure to follow this rule will result in undefined behavior.
+#
+# If you enable nametrans, you will likely need to set the reversed nametrans on
+# the other side. See the user documentation for details and use cases. They
+# are also online at: http://www.offlineimap.org/doc/nametrans.html
+#
+# This example below will remove "INBOX." from the leading edge of folders
+# (great for Courier IMAP users).
+#
+#nametrans = lambda foldername: re.sub('^INBOX\.', '', foldername)
+#
+# Using Courier remotely and want to duplicate its mailbox naming locally?  Try
+# this:
+#
+#nametrans = lambda foldername: re.sub('^INBOX\.*', '.', foldername)
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Determines if folderfilter will be invoked on each run (dynamic folder
+# filtering) or filtering status will be determined at startup (default
+# behaviour).
+#
+#dynamic_folderfilter = False
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# You can specify which folders to sync using the folderfilter setting. You can
+# provide any python function (e.g. a lambda function) which will be invoked for
+# each foldername. If the filter function returns True, the folder will be
+# synced, if it returns False, it.
+#
+# The folderfilter operates on the *UNTRANSLATED* name (before any nametrans
+# translation takes place).
+#
+# Example 1: synchronizing only INBOX and Sent.
+#
+#folderfilter = lambda foldername: foldername in ['INBOX', 'Sent']
+#
+# Example 2: synchronizing everything except Trash.
+#
+#folderfilter = lambda foldername: foldername not in ['Trash']
+#
+# Example 3: Using a regular expression to exclude Trash and all folders
+# containing the characters "Del".
+#
+#folderfilter = lambda foldername: not re.search('(^Trash$|Del)', foldername)
+#
+# If folderfilter is not specified, ALL remote folders will be synchronized.
+#
+# You can span multiple lines by indenting the others.  (Use backslashes at the
+# end when required by Python syntax)  For instance:
+#
+#folderfilter = lambda foldername: foldername in [
+#    'INBOX', 'Sent Mail',
+#    'Deleted Items', 'Received']
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# You can specify folderincludes to include additional folders.  It should
+# return a Python list.  This might be used to include a folder that was
+# excluded by your folderfilter rule, to include a folder that your server does
+# not specify with its LIST option, or to include a folder that is outside your
+# basic reference.
+#
+# The 'reference' value will not be prefixed to this folder name, even if you
+# have specified one.  For example:
+#
+#folderincludes = ['debian.user', 'debian.personal']
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# If you do not want to have any folders created on this repository,
+# set the createfolders variable to False, the default is True. Using
+# this feature you can e.g. disable the propagation of new folders to
+# the new repository.
+#
+#createfolders = True
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# 'foldersort' determines how folders are sorted.
+#
+# This affects order of synchronization and mbnames. The expression should
+# return -1, 0, or 1, as the default Python cmp() does.  The two arguments, x
+# and y, are strings representing the names of the folders to be sorted.  The
+# sorting is applied *AFTER* nametrans, if any.  The default is to sort IMAP
+# folders alphabetically (case-insensitive). Usually, you should never have to
+# modify this.  To eg. reverse the sort:
+#
+#foldersort = lambda x, y: -cmp(x, y)
+
+
+# This option stands in the [Repository RemoteExample] section.
+#
+# Enable 1-way synchronization. When setting 'readonly' to True, this
+# repository will not be modified during synchronization. Usefull to
+# e.g. backup an IMAP server. The readonly setting can be applied to any
+# type of Repository (Maildir, Imap, etc).
+#
+#readonly = False
+
+
+[Repository GmailExample]
+
+# A repository using Gmail's IMAP interface.
+#
+# Any configuration parameter of "IMAP" type repositories can be used here.
+# Only "remoteuser" (or "remoteusereval" ) is mandatory.  Default values for
+# other parameters are OK, and you should not need fiddle with those.
+#
+# The Gmail repository will use hard-coded values for "remotehost",
+# "remoteport", "tunnel" and "ssl".  Any attempt to set those parameters will be
+# silently ignored. For details, see
+#
+#  http://mail.google.com/support/bin/answer.py?answer=78799&topic=12814
+#
+# To enable GMail labels synchronisation, set the option "synclabels"
+# in the corresponding "Account" section.
+#
+type = Gmail
+
+
+# This option stands in the [Repository GmailExample] section.
+#
+# Specify the Gmail user name. This is the only mandatory parameter.
+#
+remoteuser = username@gmail.com
+
+
+# This option stands in the [Repository GmailExample] section.
+#
+# The trash folder name may be different from [Gmail]/Trash due to localization.
+# You should look for the localized names of the spam folder too: "spamfolder"
+# tunable will help you to override the standard name.
+#
+# For example on German Gmail, this setting should be:
+#
+#trashfolder = [Gmail]/Papierkorb