This file is indexed.

/etc/horde/imp/backends.php is in php-horde-imp 6.2.12-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
<?php
/**
 * This file specifies which mail servers IMP can login to.
 *
 * IMPORTANT: DO NOT EDIT THIS FILE!
 * Local overrides MUST be placed in backends.local.php or backends.d/.
 * If the 'vhosts' setting has been enabled in Horde's configuration, you can
 * use backends-servername.php.
 *
 * Example configuration file that sets a different server name than localhost
 * for the IMAP server:
 *
 * <?php
 * $servers['imap']['hostspec'] = 'imap.example.com';
 *
 * Example configuration file that enables the advanced IMAP server in favor of
 * the simple server and enables 'hordeauth':
 *
 * <?php
 * $servers['imap']['disabled'] = true;
 * $servers['advanced']['disabled'] = false;
 * $servers['advanced']['hordeauth'] = true;
 *
 *
 * Properties that can be set for each server:
 * ===========================================
 *
 * disabled: (boolean) If true, the config entry is disabled.
 *
 * name: (string) This is the name displayed in the server list on the login
 *   screen.
 *
 * hostspec: (string) The hostname/IP address of the mail server to connect to.
 *
 * hordeauth: (mixed) Use Horde authentication?  One of:
 *     - true: [DEFAULT] IMP will attempt to use the user's existing
 *             credentials (the username/password they used to log in to
 *             Horde with) to login to this server.
 *             Everything after and including the first @ in the username
 *             will be stripped off before attempting authentication.
 *     - 'full': The username will be used unmodified.
 *     - false: Don't use Horde authentication; always require separate login.
 *
 * protocol: (string) The server protocol.  One of:
 *     - imap: [DEFAULT] IMAP. Requires a IMAP4rev1 (RFC 3501) compliant
 *               server.
 *     - pop: POP3. Requires a POP3 (RFC 1939) compliant server. All
 *              mailbox options will be disabled (POP3 does not support
 *              mailboxes). Other advanced functions will also be disabled
 *              (e.g. caching, searching, sorting).
 *
 * secure: (mixed) Security method used to connect to the server. One of:
 *     - 'ssl': [DEPRECATED; see below] Use SSL to connect to the server.
 *     - 'tls': [DEFAULT on IMAP; RECOMMENDED] Use TLS to connect to the
 *              server.
 *     - false: [DEFAULT on POP3; NOT RECOMMENED] Do not use any encryption.
 *
 *   The 'ssl' and 'tls' options will only work if you've compiled PHP
 *   with SSL support and the mail server supports secure connections.
 *
 *   The use of 'ssl' is STRONGLY DISCOURAGED. If a secure connection
 *   is needed, 'tls' should be used and the connection should be made
 *   to the base protocol port (110 for POP3, 143 for IMAP).
 *   See: http://wiki2.dovecot.org/SSL
 *
 * port: (integer) The port that the mail service/protocol you selected runs
 *   on. Default values:
 *     - imap (unsecure or w/TLS):  143
 *     - imap (w/SSL):  993 (DEPRECATED - use TLS on port 143)
 *     - pop (unsecure or w/TLS):  110
 *     - pop (w/SSL):  995 (DEPRECATED - use TLS on port 110)
 *
 * maildomain: (string) What to put after the @ when sending mail. This
 *   setting is generally useful when the sending host is different from the
 *   mail receiving host. This setting will also be used to complete
 *   unqualified addresses when composing mail. E.g. If you want all sent
 *   messages to look like:
 *
 *       From: user@example.com
 *
 *   set 'maildomain' to 'example.com'.
 *
 * cache: (mixed) Enables IMAP caching for the server.
 *
 *   Caching is HIGHLY RECOMMENDED. (Do note that if your IMAP server does not
 *   support the CONDSTORE and/or QRESYNC IMAP extensions, flags changed by
 *   another mail agent while the IMP session is active will not be updated.)
 *
 *   The following values are recognized:
 *     - false: [DEFAULT] Caching is disabled
 *     - true: Caching is enabled using the Horde cache (configured in
 *             horde/config/conf.php). (This option is DEPRECATED; use one of
 *             the below options instead.)
 *     - 'cache': Caching is enabled using the Horde cache (configured in
 *                horde/config/conf.php). It is recommended to use either
 *                'hashtable', 'nosql', or 'sql' instead, as these backends
 *                have better performance.
 *                The 'cache_lifetime' parameter (integer) can be specified
 *                to define the lifetime of the cached message data.
 *     - 'hashtable': Caching is enabled using the Horde HashTable driver
 *                    (configured in horde/config/conf.php).
 *                    The 'cache_lifetime' parameter (integer) can be
 *                    specified to define the lifetime of the cached message
 *                    data.
 *     - 'nosql': Caching is enabled using the Horde NoSQL database
 *                (configured in horde/config/conf.php).
 *     - 'sql': Caching is enabled using the Horde SQL database (configured in
 *              horde/config/conf.php).
 *     - A Horde_Imap_Client_Cache_Backend object: Directly configure the
 *                                                 caching backend to use. For
 *                                                 advanced users only.
 *
 * quota: (array) Use this if you want to display a user's quota status. Set
 *   to an empty value to disable quota status (DEFAULT).
 *
 *   To enable, set the 'driver' key to the name of the driver. The 'params'
 *   key can contain optional configuration parameters.
 *
 *   These 'params' keys are available for ALL drivers:
 *     - hide_when_unlimited: (boolean) True if you want to hide quota
 *                            output when the server reports an unlimited
 *                            quota.
 *     - interval: (integer) Update quota information in the UI at this
 *                 interval (in seconds). Defaults to 15 minutes.
 *     - unit: (string) What storage unit the quota messages should be
 *             displayed in.  One of:
 *               - GB
 *               - MB [DEFAULT]
 *               - KB
 *
 *   These are the available drivers, along with their optional parameters:
 *     - hook: Use the quota hook to handle quotas (see imp/config/hooks.php).
 *             All parameters defined for this driver will be passed to the
 *             quota hook function.
 *     - imap: Use the IMAP QUOTA extension to handle quotas. The IMAP server
 *             server must support the QUOTAROOT command to use this driver.
 *             This is the RECOMMENDED way of handling quotas.
 *
 * smtp: (array) SMTP configuration parameters.
 *
 *   For configuration parameters marked with a [*] below, the Horde-wide SMTP
 *   configuration is used by default.
 *
 *   If allowing access to external mail servers (e.g. Gmail), you almost
 *   certainly will want to override the defaults to specify the foreign SMTP
 *   server used to send messages from that given mail domain.
 *
 *   NOTE: By default, IMP will use the authentication credentials used to
 *   login to the current backend. To use the credentials specified by the
 *   Horde-wide SMTP configuration, 'horde_auth' must be true (see below).
 *
 *   These configuration parameters are available:
 *     - debug: (string) If set, enables SMTP debugging. See the 'debug'
 *              parameter below (under the 'Debugging Properties' header)
 *              for acceptable values.
 *     - horde_auth: (boolean) If true, populates the 'password' and
 *                   'username' parameters with the authentication credentials
 *                   used by the Horde-wide SMTP configuration (only if those
 *                   fields are not defined for this backend in IMP).
 *     - host: [*] (string) SMTP server host.
 *     - lmtp: [*] (boolean) If true, the server uses the LMTP protocol.
 *     - localhost: [*] (string) The local hostname.
 *     - password: (string) Password to use for SMTP server authentication.
 *     - port: [*] (integer) SMTP server port.
 *     - secure: [*] (string) Use SSL or TLS to connect.
 *               Possible options:
 *                 - false (No encryption)
 *                 - 'ssl' (Auto-detect SSL version)
 *                 - 'sslv2' (Force SSL version 2)
 *                 - 'sslv3' (Force SSL version 3)
 *                 - 'tls' (TLS) [DEFAULT]
 *                 - 'tlsv1' (TLS direct version 1.x connection to server)
 *                   [@since Horde_Smtp 1.3.0]
 *                 - true (Use TLS, if available) [@since Horde_Smtp 1.2.0]
 *     - timeout: (integer) Connection timeout, in seconds. Defaults to 30
 *                seconds
 *     - username: (string) Username to use for SMTP server authentication.
 *
 * spam: (array) Spam reporting configuration. This array can contain two
 *   keys - 'innocent' and 'spam' - that defines the behavior when a user
 *   flags a message with one of these actions.
 *
 *   The 'display' option (boolean) behaves as follows:
 *     - innocent: If true, the innocent action only appears in the user's
 *                 spam mailbox (default). If false, the action appears in
 *                 all mailboxes.
 *     - spam: If false, the spam action appears in all mailboxes other than
 *             the user's spam mailbox (default). If true, the action appears
 *             in all mailboxes.
 *
 *   These placeholders are available in the options marked *EXPANDABLE* below
 *   and will be expanded at run-time:
 *      - %u: The Horde username.
 *      - %l: The short username (no domain information).
 *      - %d: The domain name.
 *
 *   The following drivers are available (at least one driver must be
 *   configured for the spam options to appear in the UI):
 *
 *     + Email reporting
 *       - email: (string) The e-mail address to use for reporting.
 *       - email_format: (string) Either 'digest' or 'redirect'.
 *         - digest: [DEFAULT; RECOMMENDED] Packages the raw data of all
 *                   messages reported by the user in their marking action and
 *                   sends to the reporting e-mail address in a single
 *                   multipart/digest message.
 *         - redirect: Redirects the message to the reporting e-mail address
 *                     Note that this alters the original message's headers
 *                     and may break embedded spam reporting signature
 *                     information contained in the original message.
 *
 *     + Null reporting
 *       - null: (boolean) Whether the action should be considered to be
 *               successful or not. This driver can be used to trigger
 *               post-reporting spam actions (i.e. deleting/moving messages)
 *               if this value is true and no other drivers are configured.
 *
 *     + Program reporting
 *       - program: (string) An external program to report the spam message
 *                  to. Messages will be reported to the program via standard
 *                  input.
 *
 *
 * Properties that only apply to IMAP servers:
 * ===========================================
 *
 * acl: (boolean) Access Control Lists (ACLs).  One of:
 *   - true:  Enable ACLs. (Not all IMAP servers support this feature).
 *   - false:  [DEFAULT] Disable ACLs.
 *
 * admin: (array) Use this if you want to enable mailbox management for
 *   administrators via Horde's user administration interface. The mailbox
 *   management gets enabled if you let IMP handle the Horde authentication
 *   the 'application' authentication driver.  Your IMAP server needs to
 *   support mailbox management via IMAP commands.
 *
 *   Do not define this value if you do not want mailbox management [DEFAULT].
 *
 *   The following parameters are available:
 *     - password: (string) The admin user's password.
 *     - user: (string) The admin user.
 *     - userhierarchy: (string) The hierarchy where user mailboxes are
 *                      stored.
 *
 * autocreate_special: (boolean) If true, automatically create special
 *                     mailboxes on login (see 'special_mboxes')?
 *
 * special_mboxes: (array) The list of mailbox names to use for special
 *   mailboxes. These values override the default preference values for a
 *   backend.
 *
 *   The array keys are the special mailbox type, the array values are the
 *   IMAP mailbox name (UTF-8) to use on the server. Available keys:
 *     - IMP_Mailbox::MBOX_DRAFTS
 *     - IMP_Mailbox::MBOX_SENT
 *     - IMP_Mailbox::MBOX_SPAM
 *     - IMP_Mailbox::MBOX_TEMPLATES
 *     - IMP_Mailbox::MBOX_TRASH
 *
 *   It is also possible to define localized special mailboxes. To do so, use
 *   the array key IMP_Mailbox::MBOX_USERSPECIAL and list the local special
 *   mailboxes in an array, with keys as the IMAP mailbox name (in UTF-8) and
 *   values as the mailbox display label.
 *
 *
 * Debugging properties:
 * =====================
 *
 * debug: (string) If set, will output debug information about the
 *   client/server communication. The value can be any PHP supported wrapper
 *   that can be opened via PHP's fopen() command. This setting should not be
 *   enabled by default on production servers, since the log file will quickly
 *   grow very large.
 *
 *   Example: To output to a file, provide the full path to the file (a bare
 *   string is interpreted by PHP to be a filename). This file must be
 *   writable by the PHP process.
 *
 * debug_raw: (boolean) By default, debugging will only output a short summary
 *   of message body content sent to and received from the server. If you want
 *   the debug stream to output the full, raw data of the client/server
 *   communication, set this option to true.
 *
 *
 * Advanced properties:
 * ====================
 *
 * *** The following options should NOT be set unless you REALLY know what ***
 * *** you are doing! FOR MOST PEOPLE, AUTO-DETECTION OF THESE PARAMETERS  ***
 * *** (the default if the parameters are not set) SHOULD BE USED!         ***
 *
 * capability_ignore: [IMAP only] (array) A list of IMAP capabilites to
 *   ignore, even if they are supported on the server. The capability names
 *   should be in all capitals. This option may be useful, for example, if it
 *   is known that a certain capability is buggy on the given server.
 *   Otherwise, all available and supported IMAP capabilities will be (and
 *   should be) used.
 *
 * comparator: [IMAP only] (string) The search comparator to use instead of
 *   the default IMAP server comparator (e.g. for sorting text fields). See
 *   RFC 4790 [3.1] - "collation-id" - for the format. Your IMAP server must
 *   support the I18NLEVEL extension. By default, the server default
 *   comparator is used.
 *
 * id: [IMAP only] (array) Send ID information to the IMAP server. This must
 *   be an array with the keys being the fields to send and the values being
 *   the associated values. Your IMAP server must support the ID extension.
 *   See RFC 2971 [3.3] for a list of defined field values.
 *
 * import_limit: [IMAP only] (integer) The maximum number of messages a user
 *   can import. Importing large mailboxes via the IMAP APPEND command is
 *   potentially a resource-intensive operation, and some IMAP servers (e.g.
 *   Dovecot 2.2) can be extremely slow in importing. By default, limit
 *   importing to 2500 messages. Set this to 0 to enforce no message limit.
 *
 * lang: [IMAP only] (array) A list of languages (in priority order) to be
 *   used to display human readable messages returned by the IMAP server. Your
 *   IMAP server must support the LANGUAGE extension. By default, IMAP
 *   messages are output in the IMAP server default language.
 *
 * namespace: [IMAP only] (array) The list of namespaces that exist on the
 *   server. Example:
 *
 *     array('#shared/', '#news/', '#public/')
 *
 *   This parameter should only be used if you want to allow access to names
 *   namespaces that may not be publicly advertised by the IMAP server (see
 *   RFC 2342 [3]). These additional namespaces will be ADDED to the list of
 *   available namespaces returned by the server.
 *
 * preferred: (string | array) Useful if you want to use the same backends.php
 *   file for different machines. If the hostname of the IMP machine is
 *   identical to one of those in the preferred list, then that entry will be
 *   selected by default on the login screen. Otherwise the first entry in the
 *   list is selected.
 *
 * sort_force: (boolean) By default, IMP only allows sorting by criteria
 *   other than arrival time if using IMAP and the remote IMAP server supports
 *   the SORT extension (RFC 5256). If this setting is true, IMP will
 *   implement sorting on the web server. However, this requires that the
 *   selected sort criteria be downloaded from the remote server for EVERY
 *   message in a mailbox before the mailbox can be displayed. For mailboxes
 *   that contain more than a few hundred messages, this can be a tremendously
 *   expensive operation. Enable sorting on these installations at your peril.
 *
 * thread: [IMAP only] (string) Set the preferred thread sort algorithm. This
 *   algorithm must be supported by the remote server. By default, IMP
 *   attempts to use REFERENCES sorting and, if this is not available, will
 *   fallback to ORDEREDSUBJECT sorting performed by Horde on the local server.
 *
 * timeout: (integer) Set the server timeout (in seconds).
 */

/* Example configurations: */

// IMAP server
$servers['imap'] = array(
    // ENABLED by default; will connect to IMAP port on local server
    'disabled' => false,
    'name' => 'IMAP Server',
    'hostspec' => 'localhost',
    'hordeauth' => false,
    'protocol' => 'imap',
    'port' => 143,
    // Plaintext logins are disabled by default on IMAP servers (see RFC 3501
    // [6.2.3]), so TLS is the only guaranteed authentication available by
    // default.
    'secure' => 'tls',
);


// POP3 server
$servers['pop'] = array(
    // Disabled by default
    'disabled' => true,
    'name' => 'POP3 Server',
    'hostspec' => 'localhost',
    'hordeauth' => false,
    'protocol' => 'pop',
    'port' => 110,
    // Default to secure TLS authentication by default (see RFC 2595 [4]).
    'secure' => 'tls',
);


// Advanced example - mainly here to demonstrate the syntax of all available
// options.
$servers['advanced'] = array(
    // Disabled by default
    'disabled' => true,
    'name' => 'Advanced IMAP Server',
    'hostspec' => 'localhost',
    'hordeauth' => false,
    'protocol' => 'imap',
    'port' => 143,
    'secure' => 'tls',
    'maildomain' => '',
    'smtp' => array(
    //    'auth' => true,
    //    'debug' => false,
    //    'horde_auth' => false,
    //    'host' => 'smtp.example.com',
    //    'lmtp' => false,
    //    'localhost' => 'localhost',
    //    'password' => null,
    //    /* Mail from a MUA SHOULD be sent via the mail submission port (587)
    //     * rather than the MTA port (25). (See RFC 6409/STD 72).
    //     * Note that mail submission REQUIRES some method of authentication
    //     * (whether explicit user/password credentials or configuring the
    //     * mail submission agent to automatically authenticate this host
    //     * based on the network location). */
    //    'port' => 587,
    //    'username' => null
    ),
    'spam' => array(
        // 'innocent' => array(
        //     'display' => true,
        //
        //     // Email reporting driver
        //     'email' => null,
        //     'email_format' => 'digest',
        //
        //     // Null reporting driver
        //     'null' => true,
        //
        //     // Program reporting driver
        //     'program' => null
        // ),
        // 'spam' => array(
        //     'display' => false,
        //
        //     // Email reporting driver
        //     'email' => null,
        //     'email_format' => 'digest',
        //
        //     // Null reporting driver
        //     'null' => true,
        //
        //     // Program reporting driver
        //     'program' => null
        // ),
        // // It is possible to directly define additional spam drivers.
        // // The 'drivers' array should contain a list of driver objects
        // // (these classes must implement the IMP_Spam_Base class).
        // 'drivers' => array(
        //     new IMP_Example_Spam_Driver()
        // )
    ),
    'admin' => array(
    //     'user' => 'cyrus',
    //     'password' => 'cyrus_pass',
    //     'userhierarchy' => 'user.'
    ),
    'acl' => true,
    'cache' => false,
    // 'debug' => '/tmp/imp_imap.log',
    // 'debug_raw' => false,
    'quota' => array(
        'driver' => 'imap',
        'params' => array(
            'hide_when_unlimited' => true,
            'unit' => 'MB'
        )
    ),
    'special_mboxes' => array(
    //     IMP_Mailbox::MBOX_DRAFTS => 'Drafts',
    //     IMP_Mailbox::MBOX_SENT => 'Sent',
    //     IMP_Mailbox::MBOX_SPAM => 'Spam',
    //     IMP_Mailbox::MBOX_TEMPLATES => 'Templates',
    //     IMP_Mailbox::MBOX_TRASH => 'Trash',
    //     IMP_Mailbox::MBOX_USERSPECIAL => array(
    //         'Example' => _("Example Special Mailbox")
    //     )
    ),
    'autocreate_special' => false,
);