root / offlineimap.conf

1
# Sample configuration file
2
# Copyright (C) 2002-2005 John Goerzen
3
# <jgoerzen@complete.org>
4
#
5
#    This program is free software; you can redistribute it and/or modify
6
#    it under the terms of the GNU General Public License as published by
7
#    the Free Software Foundation; either version 2 of the License, or
8
#    (at your option) any later version.
9
#
10
#    This program is distributed in the hope that it will be useful,
11
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
#    GNU General Public License for more details.
14
#
15
#    You should have received a copy of the GNU General Public License
16
#    along with this program; if not, write to the Free Software
17
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19
# Looking for a quick start?  Take a look at offlineimap.conf.minimal.
20
21
22
##################################################
23
# General definitions
24
##################################################
25
26
[general]
27
28
# This specifies where offlineimap is to store its metadata.
29
# This directory will be created if it does not already exist.
30
31
metadata = ~/.offlineimap
32
33
# This variable specifies which accounts are defined.  Separate them
34
# with commas.  Account names should be alphanumeric only.
35
# You will need to specify one section per account below.  You may
36
# not use "general" for an account name.
37
#
38
39
accounts = Test
40
41
# Offlineimap can synchronize more the one account at a time.  If you
42
# want to enable this feature, set the below value to something
43
# greater than 1.  To force it to synchronize only one account at a
44
# time, set it to 1.
45
#
46
47
maxsyncaccounts = 1
48
49
# You can specify one or more user interface modules for OfflineIMAP
50
# to use.  OfflineIMAP will try the first in the list, and if it
51
# fails, the second, and so forth.
52
#
53
# The pre-defined options are:
54
# Curses.Blinkenlights -- A text-based (terminal) interface similar to
55
# Tk.Blinkenlights
56
# TTY.TTYUI -- a text-based (terminal) interface
57
# Noninteractive.Basic -- Noninteractive interface suitable for cronning
58
# Noninteractive.Quiet -- Noninteractive interface, generates no output
59
#                         except for errors.
60
# Machine.MachineUI -- Interactive interface suitable for machine
61
#                      parsing.
62
#
63
# You can override this with a command-line option -u.
64
65
ui = Curses.Blinkenlights, TTY.TTYUI,
66
     Noninteractive.Basic, Noninteractive.Quiet
67
68
# If you try to synchronize messages to a read-only folder,
69
# OfflineIMAP will generate a warning.  If you want to suppress these
70
# warnings, set ignore-readonly to yes.  Read-only IMAP folders allow
71
# reading but not modification, so if you try to change messages in
72
# the local copy of such a folder, the IMAP server will prevent
73
# OfflineIMAP from propogating those changes to the IMAP server.
74
75
ignore-readonly = no
76
77
########## Advanced settings
78
79
# You can give a Python source filename here and all config file
80
# python snippets will be evaluated in the context of that file.
81
# This allows you to e.g. define helper functions in the Python
82
# source file and call them from this config file.  You can find
83
# an example of this in the manual.
84
#
85
# pythonfile = ~/.offlineimap.py
86
#
87
88
# By default, OfflineIMAP will not exit due to a network error until
89
# the operating system returns an error code.  Operating systems can sometimes
90
# take forever to notice this.  Here you can activate a timeout on the
91
# socket.  This timeout applies to individual socket reads and writes,
92
# not to an overall sync operation.  You could perfectly well have a 30s
93
# timeout here and your sync still take minutes.
94
#
95
# Values in the 30-120 second range are reasonable.
96
#
97
# The default is to have no timeout beyond the OS.  Times are given in seconds.
98
#
99
# socktimeout = 60
100
101
##################################################
102
# Mailbox name recorder
103
##################################################
104
105
[mbnames]
106
107
# offlineimap can record your mailbox names in a format you specify.
108
# You can define the header, each mailbox item, the separator,
109
# and the footer.  Here is an example for Mutt.
110
# If enabled is yes, all six setting must be specified, even if they
111
# are just the empty string "".
112
#
113
# The header, peritem, sep, and footer are all Python expressions passed
114
# through eval, so you can (and must) use Python quoting.
115
116
enabled = no
117
filename = ~/Mutt/muttrc.mailboxes
118
header = "mailboxes "
119
peritem = "+%(accountname)s/%(foldername)s"
120
sep = " "
121
footer = "\n"
122
123
# You can also specify a folderfilter.  It will apply to the
124
# *translated* folder name here, and it takes TWO arguments:
125
# accountname and foldername.  In all other ways, it will
126
# behave identically to the folderfilter for accounts.  Please see
127
# that section for more information and examples.
128
#
129
# Note that this filter can be used only to further restrict mbnames
130
# to a subset of folders that pass the account's folderfilter.
131
132
[ui.Curses.Blinkenlights]
133
# Character used to indicate thread status.
134
135
statuschar = .
136
137
##################################################
138
# Accounts
139
##################################################
140
141
# This is an account definition clause.  You'll have one of these
142
# for each account listed in general/accounts above.
143
144
[Account Test]
145
########## Basic settings
146
147
# These settings specify the two folders that you will be syncing.
148
# You'll need to have a "Repository ..." section for each one.
149
150
localrepository = LocalExample
151
remoterepository = RemoteExample
152
153
########## Advanced settings
154
155
# You can have offlineimap continue running indefinately, automatically
156
# syncing your mail periodically.  If you want that, specify how
157
# frequently to do that (in minutes) here.  You can also specify
158
# fractional minutes (ie, 3.25).
159
160
# autorefresh = 5
161
162
# You can tell offlineimap to do a number of quicker synchronizations
163
# between full updates.  A quick synchronization only synchronizes
164
# if a Maildir folder has changed, or if an IMAP folder has received
165
# new messages or had messages deleted.  It does not update if the
166
# only changes were to IMAP flags.  Specify 0 to never do quick updates,
167
# -1 to always do quick updates, or a positive integer to do that many
168
# quick updates between each full synchronization (requires autorefresh).
169
170
# quick = 10
171
172
[Repository LocalExample]
173
174
# This is one of the two repositories that you'll work with given the
175
# above example.  Each repository requires a "type" declaration.
176
#
177
# The types supported are Maildir and IMAP.
178
#
179
180
type = Maildir
181
182
# Specify local repository.  Your IMAP folders will be synchronized
183
# to maildirs created under this path.  OfflineIMAP will create the
184
# maildirs for you as needed.
185
186
localfolders = ~/Test
187
188
# You can specify the "path separator character" used for your Maildir
189
# folders.  This is inserted in-between the components of the tree.
190
# It defaults to ".".  If you want your Maildir folders to be nested,
191
# set it to "/".
192
193
sep = .
194
195
# Some users on *nix platforms may not want the atime (last access
196
# time) to be modified by OfflineIMAP.  In these cases, they would
197
# want to set restoreatime to yes.  OfflineIMAP will make an effort
198
# to not touch the atime if you do that.
199
#
200
# In most cases, the default of no should be sufficient.
201
202
restoreatime = no
203
204
[Repository RemoteExample]
205
206
# And this is the remote repository.  We only support IMAP or Gmail here.
207
208
type = IMAP
209
210
# The following can fetch the account credentials via a python expression that
211
# is parsed from the pythonfile parameter. For example, a function called
212
# "getcredentials" that parses a file "filename" and returns the account
213
# details for "hostname".
214
# remotehosteval = getcredentials("filename", "hostname", "hostname")
215
# remoteusereval = getcredentials("filename", "hostname", "user")
216
# remotepasseval = getcredentials("filename", "hostname", "passwd")
217
218
# Specify the remote hostname.
219
remotehost = examplehost
220
221
# Whether or not to use SSL.
222
ssl = yes
223
224
# SSL Client certificate (optional)
225
# sslclientcert = /path/to/file.crt
226
227
# SSL Client key (optional)
228
# sslclientkey = /path/to/file.key
229
230
# Specify the port.  If not specified, use a default port.
231
# remoteport = 993
232
233
# Specify the remote user name.
234
remoteuser = username
235
236
# There are five ways to give the password for the remote IMAP
237
# server:
238
#
239
# 1. No password at all specified in the config file. If a matching
240
#    entry is found in ~/.netrc (see netrc (5) for information) the
241
#    password from the matching entry will be used. Otherwise you
242
#    will be prompted for the password when OfflineIMAP starts.
243
#
244
# 2. The remote password stored in this file with the remotepass
245
#    option. Example:
246
#
247
# remotepass = mypassword
248
#
249
# 3. The remote password stored as a single line in an external
250
#    file, which is referenced by the remotefile option.  Example:
251
#
252
# remotepassfile = ~/Password.IMAP.Account1
253
#
254
# 4. With a preauth tunnel.  With this method, you invoke an external
255
# program that is guaranteed *NOT* to ask for a password, but rather
256
# to read from stdin and write to stdout an IMAP procotol stream
257
# that begins life in the PREAUTH state.  When you use a tunnel,
258
# you do NOT specify a user or password (if you do, they'll be
259
# ignored.)  Instead, you specify a preauthtunnel, as this
260
# example illustrates for Courier IMAP on Debian:
261
#
262
# preauthtunnel = ssh -q imaphost '/usr/bin/imapd ./Maildir'
263
#
264
# 5. If you are using Kerberos and have the Python Kerberos package installed,
265
# you should not specify a remotepass.  If the user has a valid
266
# Kerberos TGT, OfflineIMAP will figure out the rest all by itself, and
267
# fall back to password authentication if needed.
268
269
########## Advanced settings
270
271
# Some IMAP servers need a "reference" which often refers to the
272
# "folder root".  This is most commonly needed with UW IMAP, where
273
# you might need to specify the directory in which your mail is
274
# stored.  Most users will not need this.
275
#
276
# reference = Mail
277
278
# OfflineIMAP can use multiple connections to the server in order
279
# to perform multiple synchronization actions simultaneously.
280
# This may place a higher burden on the server.  In most cases,
281
# setting this value to 2 or 3 will speed up the sync, but in some
282
# cases, it may slow things down.  The safe answer is 1.  You should
283
# probably never set it to a value more than 5.
284
285
maxconnections = 1
286
287
# OfflineIMAP normally closes IMAP server connections between refreshes if
288
# the global option autorefresh is specified.  If you wish it to keep the
289
# connection open, set this to true.  If not specified, the default is
290
# false.  Keeping the connection open means a faster sync start the
291
# next time and may use fewer server resources on connection, but uses
292
# more server memory.  This setting has no effect if autorefresh is not set.
293
294
holdconnectionopen = no
295
296
# If you want to have "keepalives" sent while waiting between syncs,
297
# specify the amount of time IN SECONDS between keepalives here.  Note that
298
# sometimes more than this amount of time might pass, so don't make it
299
# tight.  This setting has no effect if autorefresh and holdconnectionopen
300
# are not both set.
301
302
# keepalive = 60
303
304
# Normally, OfflineIMAP will expunge deleted messages from the server.
305
# You can disable that if you wish.  This means that OfflineIMAP will
306
# mark them deleted on the server, but not actually delete them.
307
# You must use some other IMAP client to delete them if you use this
308
# setting; otherwise, the messgaes will just pile up there forever.
309
# Therefore, this setting is definately NOT recommended.
310
#
311
# expunge = no
312
# You can specify a folder translator.  This must be a eval-able
313
# Python expression that takes a foldername arg and returns the new
314
# value.  I suggest a lambda.  This example below will remove "INBOX." from
315
# the leading edge of folders (great for Courier IMAP users)
316
#
317
# WARNING: you MUST construct this such that it NEVER returns
318
# the same value for two folders, UNLESS the second values are
319
# filtered out by folderfilter below.  Failure to follow this rule
320
# will result in undefined behavior
321
#
322
# nametrans = lambda foldername: re.sub('^INBOX\.', '', foldername)
323
324
# Using Courier remotely and want to duplicate its mailbox naming
325
# locally?  Try this:
326
#
327
# nametrans = lambda foldername: re.sub('^INBOX\.*', '.', foldername)
328
329
# You can specify which folders to sync.  You can do it several ways.
330
# I'll provide some examples.  The folderfilter operates on the
331
# *UNTRANSLATED* name, if you specify nametrans.  It should return
332
# true if the folder is to be included; false otherwise.
333
#
334
# Example 1: synchronizing only INBOX and Sent.
335
#
336
# folderfilter = lambda foldername: foldername in ['INBOX', 'Sent']
337
#
338
# Example 2: synchronizing everything except Trash.
339
#
340
# folderfilter = lambda foldername: foldername not in ['Trash']
341
#
342
# Example 3: Using a regular expression to exclude Trash and all folders
343
# containing the characters "Del".
344
#
345
# folderfilter = lambda foldername: not re.search('(^Trash$|Del)', foldername)
346
#
347
# If folderfilter is not specified, ALL remote folders will be
348
# synchronized.
349
#
350
# You can span multiple lines by indenting the others.  (Use backslashes
351
# at the end when required by Python syntax)  For instance:
352
#
353
# folderfilter = lambda foldername: foldername in
354
#        ['INBOX', 'Sent Mail', 'Deleted Items',
355
#         'Received']
356
#
357
# FYI, you could also include every folder with:
358
#
359
# folderfilter = lambda foldername: 1
360
#
361
# And exclude every folder with:
362
#
363
# folderfilter = lambda foldername: 0
364
365
# You can specify folderincludes to include additional folders.
366
# It should return a Python list.  This might be used to include a
367
# folder that was excluded by your folderfilter rule, to include a
368
# folder that your server does not specify with its LIST option, or
369
# to include a folder that is outside your basic reference.  Some examples:
370
#
371
# To include debian.user and debian.personal:
372
#
373
# folderincludes = ['debian.user', 'debian.personal']
374
#
375
# To include your INBOX (UW IMAPd users will find this useful if they
376
# specify a reference):
377
#
378
# folderincludes = ['INBOX']
379
#
380
# To specify a long list:
381
#
382
# folderincludes = ['box1', 'box2', 'box3', 'box4',
383
#                   'box5', 'box6']
384
385
# You can specify foldersort to determine how folders are sorted.
386
# This affects order of synchronization and mbnames. The expression
387
# should return -1, 0, or 1, as the default Python cmp() does.  The
388
# two arguments, x and y, are strings representing the names of the folders
389
# to be sorted.  The sorting is applied *AFTER* nametrans, if any.
390
#
391
# To reverse the sort:
392
#
393
# foldersort = lambda x, y: -cmp(x, y)
394
395
396
[Repository GmailExample]
397
398
# A repository using Gmail's IMAP interface.  Any configuration
399
# parameter of `IMAP` type repositories can be used here.  Only
400
# `remoteuser` (or `remoteusereval` ) is mandatory.  Default values
401
# for other parameters are OK, and you should not need fiddle with
402
# those.
403
#
404
# The Gmail repository will use hard-coded values for `remotehost`,
405
# `remoteport`, `tunnel` and `ssl`.  (See
406
# http://mail.google.com/support/bin/answer.py?answer=78799&topic=12814)
407
# Any attempt to set those parameters will be silently ignored.
408
#
409
410
type = Gmail
411
412
# Specify the Gmail user name. This is the only mandatory parameter.
413
remoteuser = username@gmail.com
414
415
# Deleting a message from a Gmail folder via the IMAP interface will
416
# just remove that folder's label from the message: the message will
417
# continue to exist in the '[Gmail]/All Mail' folder.  If `realdelete`
418
# is set to `True`, then deleted messages will really be deleted
419
# during `offlineimap` sync, by moving them to the '[Gmail]/Trash'
420
# folder.  BEWARE: this will deleted a messages from *all folders* it
421
# belongs to!
422
#
423
# See http://mail.google.com/support/bin/answer.py?answer=77657&topic=12815
424
realdelete = no